0

2 つのエンティティ クラス A と B、およびインスタンス a、b があります (a と b は同じ ID を持ちます)。B は A のサブクラスです ( B は A を拡張します)。データベースからエンティティ「b」を削除しました。すると、「a」が削除されていないことがわかりました。実はそれが私が本当に望んでいることです。ただし、コードのある時点で、「a」も削除したいと考えています。しかし、entityManager.remove(a) を実行すると、切り離されたエンティティを削除できないという例外がスローされます。スーパークラスエンティティはデータベースに残っていますが、サブクラスエンティティを削除するとスーパークラスエンティティが切り離されるようです。インスタンスaを削除するのを手伝ってくれる人はいますか。

注: a と b は同じ ID を持っています。これは、b を作成すると、同じ ID (継承規則) で自動的に a が作成されるためです。

4

1 に答える 1

0

を使用する必要がありますsession.delete(b)。これにより、両方のレコードがデータベースから削除されます。

ネイティブ SQL の delete ステートメントを使用して b レコードを削除した後、ネイティブの delete ステートメントを使用して a レコードを削除する必要があります。

于 2013-04-25T09:12:27.220 に答える