一尘不染

集合上的NHibernate多态查询

hibernate

我正在尝试在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%'

阅读 251

收藏
2020-06-20

共1个答案

一尘不染

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

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