에서 Entity 클래스로 매핑 된 3 또는 4 웨이 many-to-many 연관을 생성하는 방법은 Spring 3.1, hibernate 4.0.1.FINAL 및 spring-data-jpa 1.0.2.RELEASE로 작업하고 있습니다. 예를 들어 class A
과 class B
사이에 many-to-many
이 있고 그 중 하나가 ABMap
으로 매핑되었다고 가정 해 봅시다. 또한 class C
과 class D
사이에 또 다른 many5to many가 CDMap
으로 매핑됩니다. 내가 클래스 ABMapID
가JPA 2
@Embeddable
public class ABMapID{
private String aID;
private String bID;
}
//... setters and getters
그렇게 매핑 자체가 이제
@Entity
public class ABMap {
@Id
@AttributeOverrides({
@AttributeOverride(name = "aID", column = @Column(name = "a_id",insertable = false, updatable = false)),
@AttributeOverride(name = "bID", column = @Column(name = "b_id", insertable = false,updatable = false))
})
private ABMapID ID;
@ManyToOne(targetEntity = A.class)
@JoinColumn(name = "a_id",insertable = false,updatable = false)
private A a;
@ManyToOne(targetEntity = B.class)
@JoinColumn(name = "b_id", insertable = false, updatable = false)
private B b;
//.... setters and getters
}
의 우리가 ABMap
ACDMapID
이 도움으로 구성되어 ACDMap
로 변경하고 싶은 말은하자 아래 @Embeddable 주석이 있고, CDMapID (자체는 cID, dID로 구성됩니다). org.hibernate.AnnotationException : ACDMap에서 외래 키 다스의 CDMap 열 잘못된 번호가 은 나의 새 연결 ID는 ACDMapID
@Embeddable
public class ACDMapID {
private String aID;
private CDMapID cdmapID;
}
and the entity is mapped like so
@Entity
public class ACDMap {
@Id
@AttributeOverrides({
@AttributeOverride(name = "aID", column = @Column(name = "a_id",insertable = false, updatable = false)),
@AttributeOverride(name = "cdmapID", column = @Column(name = "dcmap_id", insertable = false,updatable = false))
})
private ACDMapID ID;
}
그래서이 날이 오류
에 의한 줄 실행입니다 . 2이어야합니다.
이 매핑을 수행하는 방법은 무엇입니까? 나는 CDMap을 그대로 유지하고 싶다.