Как обеспечить удаление сирот в отношениях ManyToOne - PullRequest
0 голосов
/ 18 июня 2011
@ManyToOne(fetch = LAZY)
@JoinColumn(name = COL_GROUP_ID, nullable = false, insertable = false, updatable = false, referencedColumnName = COL_ID)
@OnDelete(action = CASCADE)
@Cascade(value = DELETE_ORPHAN)
private Group group;

Как обеспечить удаление потерянных объектов в отношении ManyToOne, приведенный выше фрагмент кода работал для нас в Hibernate 3.3.x, но после миграции на 3.6.5. Наконец, он отображается в коде как ПРЕДУПРЕЖДЕНИЕ.есть ли эквивалентный флаг, например orphanRemoval = true, который применяется к нотации @OneToMany?

1 Ответ

0 голосов
/ 22 ноября 2018

Вы не можете применить ORPHAN_REMOVAL к MANY_TO_ONE стороне.

Предположим, у вас есть объект Город , который имеет @ OneToMany Гражданин , а с другой стороны у вас есть @ ManyToOne Город в Гражданин .В вашем сценарии удаление одного гражданина приведет к удалению всего города, поэтому ORPHAN_REMOVAL применимо только к XXX_TO_Many сторона

...