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