今日のインタビューで、Hibernate eager loadingについて質問を受けました。問題は:従業員クラスと住所クラスとの関係がある場合:1人の従業員 - >多くの住所。 どのように1つのクエリでEmployeeクラスをクエリしてすべてのアドレスを取得できますか?Hibernate Criteria API
私はアドレスで熱心な読み込みをオンにすることができると述べましたが、これはN + 1桁になります。
要件は、1 sqlを使用してすべての従業員と住所をロードすることです。 答えはおそらくHibernate Criteria APIと関係があります。私がネットを見ると、これがどのように達成されるのか分かりません。 あなたの考えは高く評価されます。これはフリッツ%のような名前の猫のリストを取得し、その彼らの合致参照がすでにロードされ、その子猫のコレクションはまた、すでにロードされているでしょうhibernate reference:
List cats = sess.createCriteria(Cat.class)
.add(Restrictions.like("name", "Fritz%"))
.setFetchMode("mate", FetchMode.EAGER)
.setFetchMode("kittens", FetchMode.EAGER)
.list();
から
これは実際には違っただけで、 '' @Fetch(FetchType.EAGER)を使用してから動作しますか?どんな考え? –