Удаление каскада гибернации через встраиваемый первичный ключ - PullRequest
1 голос
/ 10 февраля 2012

HI У меня есть PK, который состоит из встраиваемого объекта.

Он состоит из двух ограничений

@ ManyToOne SpecificType1 spec;@ManyToOne SpecificType1 spec;

Таким образом, в основном это таблица сопоставления между двумя объектами.

Я хотел бы каскадно удалять на основе объекта, реализующего этот встраиваемый PK.добавил @Cascade ({CascadeType.DELETE, CascadeType.DELETE_ORPHAN}) в SpecificType1, но он просто не будет выполнять каскад.

1 Ответ

1 голос
/ 10 февраля 2012

Этот каскад не имеет смысла.

У вас есть много Foo сущностей с одинаковым SpecificType1 (ManyToOne). И вы настраиваете Hibernate так, чтобы при удалении одного из экземпляров Foo он также удалял SpecificType1. Это, очевидно, оставило бы все другие Foo сущности, связанные с несуществующей SpecificType1, что нарушило бы ограничение внешнего ключа и вызвало бы откат.

...