JPAアプリケーションにいくつかのタイプのエンティティがあり、データベース関連のすべての操作を実行するリポジトリがあるとします。
アタッチされていないエンティティが外部から渡されることがあり、それらのアタッチされたコピーを取得したい場合があります(たとえば、このエンティティへの参照を含む新しいエンティティを永続化するため、または遅延プロパティにアクセスするため)。
EntityManager.refresh(entity)
アタッチされていないオブジェクトでは機能しません。EntityManager.merge(entity)
必要に応じて、データベースから現在の値を取得する代わりに、デタッチエンティティの現在の状態をコピーします。EntityManager.find(entity.getId(), entityClass)
動作し、それが私が今していることですが、それはエンティティのタイプによって異なります(私が考えると、EntityManager.find(entity.getId(), entity.getClass())
より良いですが)。それを行う他の方法はありますか?