多対多でリンクされた 2 つのエンティティがあります。(製品とユーザー) 製品をユーザー別に制限したい:
User userAlias = null;
query.JoinAlias(product => product.Users, () => userAlias)
.Where(() => userAlias.Id == currentUser.Id);
生成された SQL コードです。
SELECT this_.Id as y0_
FROM [Product] this_
inner join UserToProduct users5_
on this_.Id = users5_.Product_id
inner join [User] useralias3_
on users5_.User_id = useralias3_.Id
....
「Where」では、user_id のみを使用し、2 番目の参加は必要ありません。
単一の SQL 結合で (QueryOver による) クエリを作成するにはどうすればよいですか?