-
[Spring boot] 엔티티 복합키 설정Spring Boot 2025. 3. 6. 11:07
회사 프로젝트 진행하다가 복합키 설정을 하다 알게 되어서 기록하게되었다.
@IdClass 설정(RDB에 가까운 방법)
어노테이션 @IdCalss를 생성해주고
복합키에 해당하는 컬럼에 @Id 어노테이션을 달아준다
@Data @Entity @AllArgsConstructor //전체 생성자 @NoArgsConstructor //기본 생성자 @IdClass(SaUserRoleId.class) //1번 @TableDefinition(prefix = "T_SA", category = "SA") public class UserRight{ @Id //2번 @Column(name = "USER_ID") //SaUserRoleId.id와 매칭 private String userId; @Id //2번 @Column(name = "ROLE_ID") //SaUserRoleId.id와 매칭 private String roleId; @Column(name = "CREATED_BY", length = 50) private String createdBy; @Column(name = "CREATED_AT") private Instant createdAt; @Column(name = "MODIFIED_BY", length = 50) private String modifiedBy; @Column(name = "MODIFIED_AT") private Instant modifiedAt; }
ID class
@AllArgsConstructor //전체생성자 @NoArgsConstructor //기본 생성자 @EqualsAndHashCode //equals, hashCode @Data public class SaUserRoleId implements Serializable { private String userId; private String roleId; }
'Spring Boot' 카테고리의 다른 글
[Spring boot] QueryDSL 알리아스 (0) 2025.03.07 @SuppressWarnings 어노테이션 (0) 2024.08.29 [Spring boot] ResultSet java.sql.SQLDataException / Error attempting to get column '컬럼' from result set - 트러블 슈팅 (0) 2024.07.27 [Spring boot] Result Map 매핑 안되는 오류 (나는 진짜 바보인가) (0) 2024.07.27 [Spring boot] @RequestParam / @RequestBody + @RequestPart 구분하기 (0) 2024.07.27