JPA / Hibernate - обратное объединение в однонаправленной ассоциации OneToOne? - PullRequest
3 голосов
/ 02 декабря 2011

Эта ссылка показывает, как однонаправленный ManyToOne может быть присоединен "с другой стороны" ассоциации.
Это также работает для ассоциаций OneToOne?

В моем случае у меня есть сущность StateTransitionEvent, которая имеет однонаправленную связь один к одному с OrderStateEntity. Я не хочу делать отношения двунаправленными на уровне объекта, классу OrderState не нужно знать о переходах.

@Entity
class StateTransitionEvent {
    @OneToOne
    private Order transitionFrom;

    @OneToOne
    private Order transTo;
}

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

Поскольку у Order много однонаправленных связей, он хотел бы начать запрос с сущности Order, но мне нужно объединить Order с StateTransitionEvent. Запрос будет выглядеть примерно так:

ВЫБРАТЬ e ИЗ Порядок o ПРИСОЕДИНИТЬСЯ к stateTranstionEvent.transitionFrom tf ...

Возможно ли это, или я должен сделать ассоциацию двунаправленной на уровне объекта?

1 Ответ

1 голос
/ 02 декабря 2011

Ваш вопрос не очень понятен.Что такое e, в SELECT 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...