ホームページ > Java > &#&チュートリアル > 分離されたエンティティで Hibernate の PersistentObjectException を修正する方法

分離されたエンティティで Hibernate の PersistentObjectException を修正する方法

Linda Hamilton
リリース: 2024-12-30 14:39:10
オリジナル
566 人が閲覧しました

How to Fix Hibernate's PersistentObjectException with Detached Entities?

分離されたエンティティを使用した Hibernate での PersistentObjectException の修正

JPA 永続オブジェクト モデルを処理する場合、特定の操作で PersistentObjectException が発生する場合があります、特に人間関係を管理するとき。たとえば、アカウントと複数のトランザクションの間の多対一の関係の場合、すでに永続化されているアカウントでトランザクションを永続化しようとすると、この例外がトリガーされる可能性があります。

根本的な問題を理解することが重要です。トランザクションを作成し、既存のアカウントを指定すると、そのアカウントはエンティティ マネージャーから切り離されたものとみなされます。これは、トランザクションが永続化されているコンテキストとは異なるコンテキストからアカウントを取得しているために発生します。

この問題を解決するには、トランザクションのアノテーションのカスケード タイプを CascadeType.MERGE。これにより、トランザクションが永続化されると、関連付けられたアカウントが現在のエンティティ マネージャー コンテキストにマージされ、分離の問題が解決されます。

更新されたコード スニペットは次のとおりです。

@Entity
public class Transaction {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER)
    private Account fromAccount;
}
ログイン後にコピー
実装することでこれらの変更により、すでに永続化されたアカウントでトランザクションを正常に永続化できるようになり、PersistentObjectException が排除されます。

以上が分離されたエンティティで Hibernate の PersistentObjectException を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート