4

現在の永続化コンテキストにない他のエンティティへの参照であるメンバー変数を含むエンティティを永続化しようとすることはできません。これが発生した場合、必要なエンティティをフェッチして、元のエンティティに順番に設定する必要があります関係を尊重し、それを維持することを許可されます。

これを実行する必要がある場合、通常はEntityManagerのfindメソッドを使用しますが、データベースにアクセスし、遅延読み込み用に注釈が付けられていない可能性のある関係とともにエンティティ全体をフェッチします。getReferenceについて知り、うれしく思いました。これはおそらくデータベースにヒットしませんが、主キーのみが使用可能であり、このタイプの状況に必要なのはそれだけであるプロキシ表現を返します。

残念ながら、デバッグを行った後、Eclipseデバッグモードで「検査」したときに、主キーだけでなく、 getReference'dエンティティに関するすべての情報を表示できるようになりました。

私は何かが足りないのですか?デバッグモードにだまされていませんか?プロキシ参照で使用した場合のgetterメソッドのように情報を取得できますか?

前もって感謝します

4

1 に答える 1

0

Eclipseデバッガーを使用して検査すると、デバッガーはプロキシを初期化します。SQLロギングをオンにしてem.getReference()メソッドを実行し、JPAエンジンによってselectステートメントが実行されていないことを確認するだけです。

于 2012-09-21T09:56:51.043 に答える