な基準の設定によりどちらのモAPIサポートの予測ション。
-
21-08-2019 - |
質問
私は必要な複製を以下の作業HQLクエリを使用基準APIに含まれています。
session.CreateQuery(
"select c " +
"from Parent p " +
"inner join p.Children c " +
"where p.Id = 9 " +
"and c.Id = 33")
.SetMaxResults(3)
.List();
クエリを選択すべての子どもを満たす一定の基準に所属している両親を満たす別の基準とします。私の例では両方の基準はシンプルId等がらも、それは何かに使えます。
何らかの理由と同等の基準APIのクエリのリストを返します右項目の個数がその項目はすべてnullになります。
session.CreateCriteria(typeof (Parent))
.Add(Restrictions.Eq("Id", 9))
.CreateCriteria("Children")
.Add(Restrictions.Eq("Id", 33))
.SetProjection(Projections.Property("Children"))
.SetMaxResults(3)
.List();
なぜこれら二つのクエリを返し同じですが。
ここでは、生成されたSQLからはHQLクエリ:
SELECT TOP 3 childid7_,
name7_
FROM (SELECT children1_.childid AS childid7_,
children1_.name AS name7_,
Row_number()
OVER(ORDER BY current_timestamp) AS __hibernate_sort_row
FROM dbo.parent parent0_
LEFT OUTER JOIN dbo.child children1_
ON parent0_.parentid = children1_.parentid
WHERE (parent0_.parentid = 9)
AND (children1_.childid = 33)) AS QUERY
WHERE QUERY.__hibernate_sort_row > 0
ORDER BY QUERY.__hibernate_sort_row
こちらはSQLの基準APIバー
SELECT TOP 3 y0_
FROM (SELECT this_.parentid AS y0_,
Row_number()
OVER(ORDER BY current_timestamp) AS __hibernate_sort_row
FROM dbo.parent this_
INNER JOIN dbo.child child1_
ON this_.parentid = child1_.parentid
WHERE this_.parentid = @p0
AND child1_.childid = @p1) AS QUERY
WHERE QUERY.__hibernate_sort_row > 0
ORDER BY QUERY.__hibernate_sort_row
この間の親子が一方向.子実体のない参照物件を指る。
でも、この代替、あるい私にこの制限?
解決
見ているクエリーのみの特性にこちら http://ayende.com/Blog/archive/2009/06/10/nhibernate-ndash-query-only-properties.aspx
ることもできるので、リンクを見て双方向のお問合せ.
他のヒント
あなたが選択として親IDを使用して子オブジェクトの種類を取得するには、あなたの基準を変更する必要があるので、あなただけ戻って子供が欲しいのように
に見えます。
session.CreateCriteria(typeof (Child))
.Add(Restrictions.Eq("Id", 33))
.CreateCriteria("Parent")
.Add(Restrictions.Eq("Id", 9))
.SetProjection(Projections.Property("Children"))
.SetMaxResults(3)
.List();
所属していません StackOverflow