JPA(JPAプロバイダとしてのHibernate)を使用しています。私は本当に冬眠の詳細を避け、JPA仕様を使用しようとしています。私は遅延オブジェクトを初期化する関数を持っています。残念ながら、Hibernate固有の関数を使用します。これは私の関数です:遅延エンティティを初期化する標準JPAメソッド
private T initializeAndUnproxy(T entity) {
if (entity == null) {
throw new
NullPointerException("Entity passed for initialization is null");
}
Hibernate.initialize(entity);
if (entity instanceof HibernateProxy) {
entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer().getImplementation();
}
return entity;
}
実体を初期化する純粋なJPA方法はありますか?
最後の文について:私はそれを使用しませんでしたが、Entitygraphsを使用して完全なエンティティを取得する方法については、こちらをご覧ください(https://docs.oracle.com/javaee/7/api/javax/persistence/EntityGraph.html)。エンティティのエンティティグラフをフェッチし、そのメタモデルのすべての遅延プロパティをAttributeNodesとして追加してからフェッチすることはできないでしょうか? –