JPA と Hibernate のpersist() と merge() の違いを調べる
データ永続性の分野では、JPA (Java Persistence) API) と Hibernate は重要な役割を果たします。その核となるのは、データベースのコンテキストでオブジェクトを管理するための 2 つの基本的なメソッド、persist() と merge() です。
persist()
persist()このメソッドは主に、データベース内に新しいエンティティを作成するか、既存のエンティティを更新する役割を果たします。その動作はエンティティの状態に応じて異なります。
二重の機能を示すpersist()の使用例:
SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); A a = new A(); session.persist(a); a.setName("Mario"); session.flush();
このシナリオでは、persist()は最初に「A」を挿入します。
merge()
persist() とは異なり、merge() はエンティティの状態をマージすることだけに焦点を当てています。分離されたエンティティを管理されたエンティティに変換します。その動作はもう少し単純です。
merge() を使用した例は、その操作を示しています。
SessionFactory sef = cfg.buildSessionFactory(); Session session = sef.openSession(); Singer singer = new Singer(); singer.setName("Luciano Pavarotti"); session.merge(singer); session.flush();
実行後、提供された Singer オブジェクトは次のようになります。既存または新しく作成された管理対象エンティティにマージされ、それぞれのデータベースが変更されます。
結論
Persist() と merge() は、JPA と冬眠します。 persist() は挿入と更新の両方の操作を可能にしますが、merge() は切り離されたエンティティを管理対象エンティティにマージするために特別に調整されています。データベース駆動型アプリケーションでエンティティを効果的に管理するには、それらの異なる動作を理解することが不可欠です。
以上が## Persist() と Merge(): どの JPA メソッドをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。