This link显示了单向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实体启动查询,但我需要使用StateTransitionEvent加入Order。 查询看起来像:
SELECT e FROM Order o JOIN stateTranstionEvent.transitionFrom tf ...
这可能吗,还是我必须在对象级别上进行双向关联?
答案 0 :(得分:1)
你的问题不是很清楚。 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