0

Hibernate を数年間使用した後でこの質問をするのはちょっと恥ずかしいです...

私は master_table を持っています:

  • @OneToMany(fetch=FetchType.LAZY, mappingBy="something ") をいくつか持っている
  • およびいくつかの @ManyToOne(fetch=FetchType.LAZY)
  • @OneToOne があるかもしれません
  • child_table で同じこと

master_table だけをロードすると、約 500 行になりました。ただし、バックグラウンドでは、約 6000 のクエリが実行されました。(EAGERがないことを確認してください)

質問: それは正常ですか? ここでは非常にうまく機能している遅延読み込みメカニズムに影響を与えることなく、1 つのクエリだけでこのテーブルを読み込むことは可能ですか。

ありがとう

4

1 に答える 1

0

答えは簡単です。 - @OneToMany で Fetch = Subselect を使用すると、クエリが 1 つしか返されませんでした。怠惰なので、子が必要な場合、対応するクエリが生成されます - BatchSize を使用することも良いオプションです

于 2012-06-20T16:46:15.227 に答える