nhibernate - 在 HQL 中按列表中的特定元素进行选择

标签 nhibernate hql


我正在为动态查询实现“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/

相关文章:

.NET ORM 需要虚拟,不能处理密封?

nhibernate - 如何将带有分组依据的HQL转换为QueryOver?

java - Hibernate递归查询

hadoop - 使用计算查询分区,避免全表扫描

java - 非标准ManyToMany关系的HQL查询

hadoop - 在特定列上选择不同但也在配置单元中选择其他列

database - 如何将评论放入 HQL(Hibernate 查询语言)?

linq - NHibernate.Linq 和 MultiCriteria

c# - Linq to NHibernate 排序未按预期工作

nhibernate - 如何使用 Fluent NHibernate 设置对 field.camelcase-underscore 的默认访问权限?