当前位置: 首页 > 面试题库 >

集合上的NHibernate多态查询

梁丘招
2023-03-14
问题内容

我正在尝试在NHibernate中编写查询。我不在乎是否使用Criteria API或HQL,只是无法弄清楚如何编写查询。

这是我的模型

public class LogEntry { public DateTime TimeCreated { get; set; } }
public class Note : LogEntry { public string Content { get; set; } }

public class Workflow { public IList<LogEntry> Log { get; set; } }

我希望查询返回所有包含注释的工作流,该注释在注释的内容中包含特定的单词。

在伪SQL中,我将这样写:

select w.*
from Workflow w
join w.Log l where l is class:Note
where (Note)l.Content like '%keyword%'

问题答案:

我不确定Criteria API,但即使搜索仅存在于特定子类中的属性,HQL似乎也能很好地处理多态查询。我希望以下工作:

from Workflow w join w.Log l where l.class = Note and l.Content like '%keyword%'


 类似资料:
  • 问题内容: 我正在写一个JPQL查询,它基于 Categories 集合进行查询。我的类别可以为空,因此我正在使用:categories = NULL进行检查。 当类别为NULL时,以上方法可以正常工作。但是,当类别超过一个值时,我得到了错误 java.sql.SQLException:操作数应包含1列 与hibernate有关的痕迹是 (?,?)或(?,?)中的category6_.catego

  • 问题内容: 我遇到了NHibernate的间歇性问题,该问题会为实体生成查询,但是用来自完全不同(且不相关)的实体的列替换了其中的一列。 它只能替换单个列,通常可以通过重新启动应用程序来解决(尽管有时需要进行几次尝试)。 ASP.NET应用程序(.NET 4.0) 在Application_Start期间创建的SessionFactory NHibernate 3.3.1-通过代码映射完成所有映射

  • 问题内容: 给定一个使用Future调用的多层对象图: 当我调用var Dad = dads.ToList()时,我看到该批生产线穿过了,并在探查器中显示。 问题是在枚举集合时它仍向数据库发送一次查询 例如。 发送一个SQL查询并访问数据库以获取每个孩子。为什么未填充对象图?还是这种预期的行为? 问题答案: 这种行为是可以预期的。您只是在告诉NHibernate从数据库中批量获取两个集合,这就是按

  • 在Firestore中,我有一个用户集合,在每个用户文档中存储一个名为favorites的集合,该集合包含标记为favorites(存储)的文档的ID 我可以采取另一种方法来获取两个集合并手动过滤它们,但我使用的是Firebase RecycerView适配器,它显示的所有数据都基于查询,这将使事情更加高效。 这样的结果是如何实现的呢?如果需要进一步的解释,请告诉我

  • 在这个函数中,我对这一行有问题:for(std::set it=owners.begin();它!=业主。结束();它)。 这是错误: 这行有多个标记--“std::set”