프로젝트를 진행하면서 중간중간 수정 작업이 있었지만 대부분 게시글 주제와는 거리가 좀 있어 설명을 생략했습니다. 이번에 수정했던 부분들을 짚어보면서 개념 정리도 다시 해보고 로그인 기능 구현 후 Swagger로 API 추가 했던 작업을 카테고리에서도 동일하게 해보겠습니다. Entity 수정 먼저 Member와 Role 을 이어주는 MemberRole Entity를 수정하겠습니다. [Before] MemberRole @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class MemberRole { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id..
spring에서 지원하는 JPA에서는 각 Entity 클래스에서 기본 키(Primary Key, PK)를 지정해야 합니다. 이때, 복합적인 기본 키를 사용하는 경우가 있습니다. spring에서는 @IdClass 어노테이션을 사용하여 복합적인 기본 키를 지정할 수 있습니다. @IdClass @IdClass 어노테이션은 복합적인 기본 키를 사용하는 엔티티 클래스에서 기본 키를 정의할 때 사용됩니다. 이 어노테이션을 적용한 클래스는 복합 키를 구성하는 여러 필드를 포함하고 있습니다. 예를 들어, Person 클래스에서 id와 name 필드를 복합 키로 사용하려면, PersonId 클래스를 정의하고 이를 @IdClass 애노테이션으로 마크업합니다. public class PersonId implements Se..
spring이 지원하는 JPA에서는 여러 개의 Entity로 구성된 객체 모델을 관계형 데이터베이스 테이블로 매핑합니다. 이 때, 객체 모델의 필드 중에는 복합적인 값을 가지는 경우가 있습니다. 예를 들어서 Address라는 객체가 있는데, Address는 ciry, street, zipCode 필드로 구성됩니다. 이러한 복합적인 값을 가지는 필드를 매핑하기 위해 @Embeddable을 사용합니다. @Embeddable @Embeddable 애노테이션은 복합적인 값을 가지는 객체를 정의할 때 사용됩니다. 이 애노테이션을 적용한 클래스는 엔티티의 필드로 사용될 수 있습니다. 예를 들어, Address 클래스를 정의하고 이를 @Embeddable 애노테이션으로 마크업하면, 다른 엔티티 클래스에서 Addres..