テーブル内のレコードを削除すると、関連するレコードが別のテーブル内で削除されるはずです。しかし、代わりに私は受け取ります:
java.sql.BatchUpdateException:バッチエントリ0の更新child_table set parent_table_id = nullここで、parent_table_id=63は中止されました
上記の例外は、次の設定に対してスローされます。
@OneToMany(cascade = javax.persistence.CascadeType.ALL, targetEntity = ChildTable.class)
@JoinColumn(name = "parent_table_id")
@org.hibernate.annotations.Fetch(FetchMode.SUBSELECT)
public List<ChildTable> getTables() {
return tables;
}
私が間違っていなければ、そのような注釈を付けて、ParentTableでレコードを削除すると、対応するリレーションが子1で削除されるはずです。完全に削除する前に(対応するレコードがもう存在しないため)「null」になろうとします。このid列は「nullではありません」。これを「null」にすると(この場合をテストするためだけに)、すべてが正しく機能します。
この背後にある本当の問題が何であるかを理解するのを手伝ってもらえますか?
前もって感謝します。