Spring 중복키 설정
JPA 엔티티에 중복키를 선언하려하니 duplicate 오류가 나서 방법을 찾아보았다.
오류가 나는 코드 - entity/music/MusicMoodEntity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Data
@Builder
@AllArgsConstructor
@Entity
@Table(name = "Music-Mood")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MusicMoodEntity {
@Id
private String musicId;
@Id
private int moodNum;
}
아이디 두 개를 저 방식으로 설정하면 애노테이션이 겹쳐 duplication 에러가 나는 모양이다.
이 코드를 아래와 같이 두 개의 파일로 나눠야한다.
아이디 선언 entity/id/MusicMoodId.jaca
1
2
3
4
5
6
7
8
9
10
@Data
@Embeddable
public class MusicMoodId implements Serializable {
@Column(name = "musicId")
private String musicId;
@Column(name="moodId")
private int moodNum;
}
중복키 사용 - entity/music/MusicMoodEntity.java
1
2
3
4
5
6
7
8
9
10
11
12
@Data
@Builder
@AllArgsConstructor
@Entity
@Table(name = "Music-Mood")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MusicMoodEntity {
@EmbeddedId
private MusicMoodId musicMoodId;
}
This post is licensed under CC BY 4.0 by the author.