2012-02-10 6 views
1

HI У меня есть ПК, который состоит из встраиваемого объекта.Hibernate cascade delete через встроенный первичный ключ

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

@ManyToOne SpecificType1 спецификации; @ManyToOne SpecificType1 spec;

Итак, в основном таблица сопоставлений между двумя объектами.

Я хотел бы каскадировать удаление на основе объекта, реализующего этот встраиваемый ПК.

Я добавил @Cascade ({CascadeType.DELETE, CascadeType.DELETE_ORPHAN}) на SpecificType1, но он просто не выполнит каскад.

ответ

1

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

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