Entity로 연동 시, DB의 키가 여러개일때, @Id를 여러개 붙이면, 실행 시 오류가 발생한다.
Serializable을 구현하라고..
구글링을 해보니.. 키가 여러개일 때, 별도로 뭐 하나 구현해주어야한다.
@Embeddable을..
나의 경우 원래 DTO는 아래와 같은 형식이었다.
@Data
@Entity
@Table(name="MyTable")
public class MyTableInfo{
@Id
private String id1;
@Id
private String id2;
private String name;
private String value;
}
이렇게 하면 오류가 발생하니, @Embeddable애노테이션을 사용하여 별도의 키 클래스를 하나 정의하고, 그걸 여기 Entity에 추가해주어야한다.
아래와 같이
//MyClassKey.java
@Data
@Embeddable
public class MyClassKey implements Serializable{
@Column(name="Id1")
private String id1;
@Column(name="Id2")
private String id2;
}
//MyClass.java
@Data
@Entity
@Table(name = "MyTable")
public class MyTableInfo{
@EmbededId
private MyClassKey myClassKey;
private String name;
private String value;
}
위와 같이 사용하여.. 여러 키를 사용하는 경우에 대해 매핑해줄 수 있다.
참고한 원글 : https://kimseungjae.tistory.com/12
반응형
댓글