0

nhibernate で QueryOver を使用して、親コレクションから子を選択しようとしています。これは私がHQLでやろうとしていることです:

SELECT as_kitten FROM Cat as_Cat 
JOIN as_Cat.Kittens as_kitten 

これはどのように QueryOver または JoinAlias を使用して変換されますか?

IList<Kitten> kittens =  session.QueryOver<Cat>()
        .JoinQueryOver<Kitten>(c => c.Kittens)
        .Select(??)
        .List()

これまでに見つけた最も近いものはNHibernate QueryOver です

乾杯

EDIT これは一方向の関係であると仮定します。子猫は猫のことを知らない

4

1 に答える 1

0

あなたの例はかなり些細なようです。すでに親があり、コレクションが cat エンティティ内で 1 対多としてマップされている場合、遅延読み込みを行っていた場合は、コレクションにアクセスするだけで済みます。

親の ID しか持っていない場合は、結合を必要とせずに次のようなことを簡単に行うことができます。

IList<Kitten> kittens =  session.QueryOver<Kitten>()
        .Where(k => k.CatId == <parent cat id here>)
        .List<Kitten>()
于 2011-07-22T11:20:59.433 に答える