1

重複の可能性:
NHibernate Join Fetch(Kind)

記事を読みました。 http://fabiomaulo.blogspot.com/2010/03/conform-mapping-components.html

私のプロジェクトでそれを再現しようとしたところ、奇妙な動作になりました。

私は2つのエンティティを持っています:

Plan 
{ 
    public virtual int Id { get; set; } 
    public virtual Payer Payer { get; set; } 
} 

Payer 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
} 

そのためのマッピング:

 orm.Cascade<Payer, Plan >(CascadeOn.Persist | CascadeOn.Merge); 
 orm.Cascade<Plan, Payer>(CascadeOn.None); 

フェッチ:

mapper.Customize<CarePlan>(cm => cm.ManyToOne(o => o.Payer, x => 
x.Fetch(FetchKind.Join))); 

簡単な取得:

    var plan = session.Query<Plan>().Where(c=>c.Id == 
    1).SingleOrDefault(); 

 Console.WriteLine(plan.Payer.Name); 

そして、私はこのクエリを得ました:

select careplan0_.Id 
       careplan0_.PayerId 
from   CarePlans careplan0_ 
where  careplan0_.Id = 1 /* @p0 */ 
and other query 
SELECT payer0_.Id , 
payer0_.Name    as Name 
FROM   Payers payer0_ 
WHERE  payer0_.Id = 2 

クエリが 2 つあるのはなぜですか? 結合で 1 つのクエリを取得するにはどうすればよいですか?

4

1 に答える 1