1 対多の関係にある User と一連の Authorities があります。
User.hbm.xml:
<set name="authorities" table="authorities" cascade="all-delete-orphan">
<key column="user_id" />
<one-to-many class="com.ebisent.domain.Authority" />
</set>
ユーザーを削除するときに権限も削除したいのですが、代わりに子テーブルの外部キー (authorities.user_id) が null に設定されています。次に、次のエラーが発生し、ユーザーの削除がロールバックされます。
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
ただし、authorities.user_id の null への更新はロールバックされません。
親ユーザーを削除するときに権限を削除するにはどうすればよいですか?
編集:権限を明示的に削除refresh()
し、ユーザーを呼び出してからユーザーを削除することでこれを機能させましたが、これを行う「正しい」方法を知りたいです。