2010-05-10 3 views
6

하이버 네이트 주석을 사용하여 2 개의 엔티티를 커스텀 조인 절과 연관 짓고 싶습니다. 절은 일반적인 FK/PK 평등에 있지만 FK가 null 인 곳에서도 마찬가지입니다. SQL에서이 같은 것입니다 : 내가 주인 엔티티에 @WhereJoinTable 주석을 사용한다 읽은 내용에서연관성에 대한 Hibernate 커스텀 조인 절

join b on a.id = b.a_id or b.a_id is null 

을,하지만 난 ... 특히 첫 번째 부분 나는이 조건을 지정하는 방법에 대해 의아해 해요 그것의 - 가입 엔티티의 ID를 참조하십시오.

예가 있습니까?

+0

b.a_id가 null 인 경우 a? –

+0

예 'a'의 모든 객체는 b.a_id가 null 인 'b'를 갖습니다. – mysomic

답변

18

다음은 기본 @Where 주석을 사용해야하는 표준 상위/하위 패러다임을 사용한 예입니다.

public class A { 
    ... 
    @ManyToOne(fetch = FetchType.EAGER) // EAGER forces outer join 
    @JoinColumn(name = "a_id") 
    @Where(clause = "a_id = id or a_id is null") // "id" is A's PK... modify as needed 
    public B getB() { return b; } 

} 

public class B { 
    ... 
    @OneToMany(mappedBy = "b") 
    public List<A> getA() { return a; } 
} 
+0

EclipseLink와 비슷한 솔루션이 있습니까? – Huntro

+0

아니요,하지만 DescriptorCustomizer http://wiki.eclipse.org/EclipseLink/Examples/JPA/MappingSelectionCriteria를 사용할 수 있습니다. –

관련 문제