1

誰かが、JPAと休止状態のコンテキストでPersistenceUtil.isLoadedが何を返すかを説明できますか?私の印象では、値がロードされ、データベースにアクセスしなくてもアクセスできるかどうかを識別します。しかし最近、オブジェクトがHibernateProxyのインスタンスであり、それにアクセスするとLIEがスローされるのに、PesistenceUtil.isLoadedがtrueを返す場合がありました。コメントをいただければ幸いです。

4

1 に答える 1

2

PersistenceUtilチェックのメソッドisLoadedは、エンティティがロードされています。ロードされるエンティティは、すべての熱心な属性がデータベースからロードされるか、アプリケーションによって割り当てられることを意味します。JPA 2.0仕様では、これは次の言葉で伝えられます。

FetchType.EAGERを持つすべての属性(明示的に指定されているかデフォルトであるかを問わず)(リレーションシップおよびその他のコレクション値の属性を含む)がデータベースからロードされているか、アプリケーションによって割り当てられている場合、エンティティはロードされていると見なされます。FetchType.LAZYの属性は、ロードされている場合とされていない場合があります。

詳細な説明については、JPA 2.0仕様、3.2.9ロード状態を参照してください。

于 2012-11-25T18:35:37.463 に答える