본문 바로가기
Programming/Java_Spring

@Entity에서 키가 여러개일 때.

by 곰네Zip 2022. 8. 9.

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

반응형

댓글