2011-12-02 4 views
3

This link은 단방향 ManyToOne이 "연관의 다른 쪽에서"어떻게 결합 될 수 있는지 보여줍니다.
OneToOne 연결에도이 작업이 가능합니까?JPA/Hibernate - 단방향 OneToOne 연관에 대한 역 결합?

내 경우 엔 OrderStateEntity와 단방향 일대일 연관이있는 StateTransitionEvent 엔티티가 있습니다. 객체 수준에서 관계를 양방향으로 만들고 싶지는 않지만 OrderState 클래스는 전환에 대해 알 필요가 없습니다. 주문이 많은 단방향 관계를 가지고 있기 때문에

@Entity 
class StateTransitionEvent { 
    @OneToOne 
    private Order transitionFrom; 

    @OneToOne 
    private Order transTo; 
} 

@Entity 
class OrderState { 
    // no association to StateTransitionEvent 
} 

, 그것은 주문 엔티티에서 쿼리를 시작하고 싶지만, 나는 StateTransitionEvent와 주문에 가입해야합니다.

가 가능 ... stateTranstionEvent.transitionFrom의 TF 가입 주문 O로부터

SELECT 전자, 또는 내가 개체 수준에서 협회 양방향을해야 할 : 쿼리는 같을 것 ?

답변

1

귀하의 질문은 명확하지 않습니다. eSELECT e FROM Order o JOIN stateTranstionEvent.transitionFrom tf에 있습니까?

Order에서 StateTransitionEvent로 연결할 수 없습니다 (Order에서 StateTransitionEvent 로의 연결이 없으므로). 하지만 당신은 다른 방향으로 가입 할 수 있으며, 순서 또는 이벤트 선택할 수 있습니다

select e from StateTransitionEvent e join e.transitionFrom tf 
where e.foo = :foo and tf.bar = :bar 

또는

select tf from StateTransitionEvent e join e.transitionFrom tf 
where e.foo = :foo and tf.bar = :bar 
관련 문제