質問

CascadeType.REFRESH は実際に何をしますか?

その定義は

です
  

エンティティを更新すると、このフィールドに保持されているすべてのエンティティも更新されます

しかし、実際にはこれはどういう意味ですか?誰か簡単な例を教えていただけますか?

役に立ちましたか?

解決

個々のCascadeTypeの説明は少々混乱する可能性がありますが、一般的なケースから簡単に理解する方法があります。

CascadeType のいずれかの値については、 EntityManager インターフェイスを使用してインスタンスで操作 X が呼び出された場合、そのインスタンス他のエンティティインスタンスへの参照があり、その関連付けに CascadeType.X が定義されている場合、 EntityManager 操作もその関連付けられたエンティティに適用されます。

したがって、 EntityManager.refresh()は次のように定義されます:

  

インスタンスの状態を更新します   データベース、行われた変更の上書き   存在する場合はエンティティに。

したがって、エンティティAにエンティティBへの参照があり、その参照に @ CascadeType.REFRESH の注釈が付けられ、 EntityManager.refresh(A)が呼び出された場合、 EntityManager.refresh(B)も暗黙的に呼び出されます。

他のヒント

更新による取得: 更新方法を使用して、管理対象オブジェクトをデータベースから再ロードできます。

メモリ内の管理対象オブジェクトの内容は破棄され(変更がある場合はそれも含む)、データベースから取得されたデータに置き換えられます。これは、エンティティオブジェクトが取得されてから別のEntityManagerによって変更された可能性がある場合に備えて、アプリケーションがエンティティオブジェクトの最新バージョンを確実に処理するために役立ちます。

出典: http://www.objectdb.com/java/jpa/persistence/取得

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top