0

Hibernateに、遅延ロードされた列がいくつかあるオブジェクトがありmany-to-oneます。一連の操作のために、オブジェクトをデータベースに永続化する必要は必ずしもありません。

オブジェクトを直接取得して、多対1のエンティティにアクセスしようとするたびに、データベースから遅延フェッチする必要がなく、値を取得できるようにするにはどうすればよいですか(最新でないかどうかは関係ありません)。セッションを開いている。

現在、セッションを開いて、新しいオブジェクトを作成し、実行する操作のために送信しています。

// Hibernate class
public class Foo {
   private Long id;

   //many-to-one mapping
   private Bar barObj;

   //getters and setters
}

これで、呼び出すたびにfooObj.getBarObj().getId()、IDの値をフェッチするためのサーバーへのプロキシ呼び出しがあります。この呼び出しを実行したくないので、fooObjをローカルに保存します。

4

1 に答える 1

2

'fetch = FetchType.EAGER'アノテーション引数を使用するか、' joinfetchbarObj`と明示的に言うクエリでフェッチすることができます。第三に、ディープデプロキシを実現するコードを書くことができます。些細なことではありませんが、これはおそらくあなたのニーズに最適です。

于 2012-04-21T08:20:36.940 に答える