Предположим, у нас есть 2 отдельных дочерних объекта одного и того же типа, на которые есть ссылки в доменном объекте Hibernate.
//uni-directional one-to-one association to Person
@OneToOne
@JoinColumn(name="ACKNOWLEDGE_BY", referencedColumnName="UNIQUEIDENTIFIER")
private Person acknowledgeBy;
//uni-directional one-to-one association to Person
@OneToOne
@JoinColumn(name="UNIQUEIDENTIFIER", referencedColumnName="UNIQUEIDENTIFIER")
private Person employee;
Эта структура всегда создает CROSS JOIN
для таблицы Person
, что неверно. Наша цель - избавиться от CROSS JOIN
и сделать так, чтобы они были отдельными Внешними Соединениями.
Почему производится CROSS JOIN
?