2011-07-18 6 views
0

나는 갇혀있는 문제가있다. (나는 이상한 관계의 관계를 구축해야한다.) 예를 들어, 하나의 엔티티 A가 많은 B OneToMany)JPA 다 계층 관계

A ----> B 

이제 I 엔티티 C는 A와 B 사이 등 복합 관계와 OneToOne 관계를 가질 것이다 다른 관계

C--> (A--->B) , not C-->A-->B 

그 C가 A의 관계를 가질 것이다하지 필요 A가 B와 같으면 C → D (A → B)와 같아야합니다.

생성 된 조인 테이블에는 JPA에 기본 키가 없으므로이 관계를 어떻게 매핑 할 수 있을지 생각 중입니다. 이것이 포함될 수 없으며 영구해야하므로 일반 A -> B도 필요합니다.

감사합니다.

예 : 위치 및 이벤트가 내 두 엔티티이며 이에 대해 CleanPlan을 관련시키고 싶습니다. 하나의 CleanPlan이 위치 -1의 이벤트 -1과 관련되어 있음을 의미합니다. 그래서 나는 event-1에서 location-1에 대한 cleanplan을 지정하고있다. 말이 돼?

enter image description here

+0

실례를 들어 줄 수 있습니까? 실제 엔티티를 설명하십시오. –

+0

예를 들어 위치 및 이벤트가 내 두 엔티티이므로 CleanPlan을 관련시키고 싶습니다. 하나의 CleanPlan이 위치 -1의 이벤트 -1과 관련되어 있음을 의미합니다. 그래서 나는 event-1에서 location-1에 대한 cleanplan을 지정하고있다. 말이 돼? – Shahriar

답변

1

나는 이벤트 위치 카디널리티에 따라이

enter image description here

또는 이런 말을한다.

enter image description here

+0

JPA에서이 작업을 수행해 주셔서 감사합니다. EventLocation이라는 클래스를 만들어야합니까? 예, 그렇다면 10 개의 엔티티가 있고이 엔티티 사이에이 관계를 만들고 싶다면 너무 많은 클래스가 있습니다. – Shahriar

+0

@Shahriar, 너무 많은 객체를 의미 했습니까? ** 연관 클래스 **와 같습니다. –

+0

아니, JPA 엔티티의 관점에서 내 이벤트 엔티티에서 위치와 @OneToMany를 연관 시키므로 룩업 테이블의 이벤트 위치가 생성되지만 자바 엔티티 클래스로 사용하지 않는다. 이제 ClampPlan 엔티티와 관련된 어떤 부분에서 어떻게 연관을 선언해야합니까? 그 EventLocation 클래스를 작성하고 CleanPlan 엔티티 클래스에서 @OnetoOne EvenLocation을 작성해야합니까? 그렇게? – Shahriar

1

는 JPA에서이 문제의 두 가지 측면이있다. 1) 매핑 테이블이 크레이팅됩니다. 2) 매핑 테이블 대신 매핑 행이 생성됩니다.

두 번째 옵션을 사용하면 더 쉽게 생활 할 수 있다고 생각합니다. 그러나 이는 이벤트와 위치가 단방향 관계를 갖는 경우에만 가능합니다. 그런 다음 ManyToOne 측에서 "mappedBy"를 입력하십시오. 그러면 ManyToOne 테이블에 매핑 테이블이 생성됩니다. 그리고 그 열을 CleanPlan 테이블에서 참조 할 수 있습니다.