私たちのプロジェクトでは、Hibernateを使用し、ログでは、FetchModeを指定しなかったときに、ときどき結合を使用し、時には関係を選択することが観察されます。どのようにFetchModeをデフォルトで使用するかをhibernateが決めますか?
FetchModeのどれが指定されていない場合にHibernateがどのようなものを使用するかはどのように決めるのですか?
これに関する仕様はありますか?任意のコード行?すべての記事?
私たちのプロジェクトでは、Hibernateを使用し、ログでは、FetchModeを指定しなかったときに、ときどき結合を使用し、時には関係を選択することが観察されます。どのようにFetchModeをデフォルトで使用するかをhibernateが決めますか?
FetchModeのどれが指定されていない場合にHibernateがどのようなものを使用するかはどのように決めるのですか?
これに関する仕様はありますか?任意のコード行?すべての記事?
FetchMode
が指定されておらず、FetchTypeがEAGER
の場合に生成されたSQLを見ると、デフォルトはHibernateではJOIN
です。
悲しいことに、私は公式の文書でこの情報を見つけることができません。 SELECT
の使用について
JOIN
がデフォルトであっても、私は1つのクエリで解決することができない一部のクエリ、like thisされているものと:
しかし、あなたがC、休止せずにBを許可する場合しかし、同じSELECTが存在をチェックするだけでなく、 オブジェクト全体を読み込むので、存在を確認するSELECTは、 だけで効率的ではありません。だから怠惰な読み込みがなくなります。
http://www.solidsyntax.be/2013/10/17/fetching-collections-hibernate/ – Steephen
「いつ」(レイジー、エイガー)と「ハウ」(選択、結合など) FetchModeに関連して。あなたは "how"に興味があるようです。公式の[documentation](https://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch20.html)を読んでみてください。デフォルトモードに関する詳細。 – aUserHimself