Перекрестное соединение, созданное Hibernate для таблицы / столбца, на которые ссылаются дважды - PullRequest
0 голосов
/ 18 июня 2019

Предположим, у нас есть 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?

1 Ответ

0 голосов
/ 18 июня 2019

Вряд ли мог понять, что вы хотите ...

Не могли бы вы попробовать этот ответ?

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "ACKNOWLEDGE_BY", unique = true)
private Person acknowledgeBy;

@OneToOne
@JoinColumn(name="UNIQUEIDENTIFIER", unique = true)
private Person employee;
//...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...