0

この記事を読んだ後、ここにリンクの説明を入力してください

フェッチ モード = LAZY では常に N +1 問題が発生するという考えがありました。これは本当ですか?もしそうなら、なぜですか?フェッチ タイプが LAZY の場合でも、OpenJPA/Hibernate はクエリを最適化できるはずです。いいえ?

4

2 に答える 2

0

これを回避するために、クエリで熱心なフェッチを指定できます。これにより、JOIN sql が生成されます。

Criteria c = session.createCriteria(Entity1.class);
c.setFetchMode("anotherObj", FetchMode.JOIN)
return c.list();
于 2013-07-30T03:54:13.953 に答える
0

はい、そうなります。ただし、追加の SELECT は、リレーションシップで定義されたオブジェクトにアクセスする場合にのみ実行されます (これが LAZY ロードと呼ばれる理由です)。

これは、それをより詳細に説明する優れた記事です: http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/

乾杯

于 2013-07-31T03:23:09.233 に答える