web-dev-qa-db-ja.com

分離エンティティと管理エンティティ

「切り離されたエンティティ」とはどういう意味ですか?トランザクション中に管理エンティティを分離エンティティに変換するにはどうすればよいですか?

26
Shemil

デタッチされたエンティティは、JPAプロバイダーによって状態が反映されてはならないエンティティです。

言い換えると、JPAプロバイダーがそのようなエンティティを「監視」する必要がないため、その状態を(セッターメソッドを介して)変更しても、これらの変更は基になるデータベースに保存されません。

エンティティE1が管理対象エンティティである場合は、分離された呼び出し(非常に適切な名前付き)メソッド EntityManager#detach(E1) にすることができます。 EntityManager#clear() を使用して、PersistenceContext全体をクリアし、すべての管理対象エンティティを効果的に切り離すこともできます。

20
Piotr Nowicki

実際、分離されたエンティティとはどういう意味ですか?

デタッチされたエンティティオブジェクトは、EntityManagerによって管理されていない特別な状態のオブジェクトですが、データベース内のオブジェクトを表します。続きを読む ソース

トランザクション中に管理対象エンティティを分離エンティティに変換するにはどうすればよいですか?

ここをお読みください

9
subodh

ここ JPAエンティティのライフサイクルについて読むことができます。

エンティティは、たとえば、永続化コンテキストのシリアライズまたはクローズ後に切り離すことができます。

6
Artem