我正在为动态查询实现“QueryEngine”设计模式
与查询语言(如 LINQ)的松散连接。
我很难为列表中的特定元素编写 HQL。
即:
public class Cat()
{
public int ID { get; set; }
public string Name { get; set; }
public Cat Child { get; set; }
}
现在我试图通过他的 child 选择一只猫,所以 HQL 应该是这样的:
SELECT cat FROM CAT as cat
WHERE cat.Child = {"Any value or subsearch"}
但是如果我将 Cat 类更改为具有一对多引用:
public class Cat()
{
public int ID { get; set; }
public string Name { get; set; }
public IList<Cat> Children { get; set; }
}
HQL 现在看起来像这样(我正在尝试按列表中的特定子项进行选择)
SELECT cat FROM CAT as cat
WHERE {"Any value or subsearch"} IN elements(Children}
我的问题是,我可以使第二个查询的顺序与第一个查询相似
像这样的事情:
SELECT cat FROM CAT as cat
WHERE Children CONTAIN {"Any value or subsearch"}
谢谢[=
最佳答案
您可能正在寻找这样的东西:
select cat from Cat cat
join cat.Children child
where child.Something is true
关于nhibernate - 在 HQL 中按列表中的特定元素进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4357954/