Если Вы используете его с, в спящем режиме, необходимо будет явно определить аннотацию CascadeType.DELETE_ORPHAN
, который может использоваться в сочетании с JPA CascadeType.ALL
.
, Если Вы не планируете использовать, в спящем режиме, необходимо будет явно сначала удалить дочерние элементы и затем удалить основную запись для предотвращения любых записей висячей строки.
последовательность выполнения
С JPA 2.0, можно теперь использовать опцию orphanRemoval = верный
@OneToMany(mappedBy="foo", orphanRemoval=true)
Согласно Персистентность Java с В спящем режиме , , каскадная висячая строка удаляет , не доступно как аннотация JPA.
Это также не поддерживается в JPA XML.
Если вы используете JPA с EclipseLink, вам нужно будет установить аннотацию @PrivateOwned .
Документация: Eclipse Wiki - Использование расширений EclipseLink JPA - Глава 1.4 Как использовать аннотацию @PrivateOwned
Если вы используете JPA 2.0, теперь вы можете использовать атрибут orphanRemoval = true
объекта @xxxToMany
аннотация для удаления сирот.
Фактически, CascadeType.DELETE_ORPHAN
устарел в 3.5.2-Final.