在我的Grails应用程序的域模型中,我在事件和性能之间存在1-N关系(因为许多艺术家可能会在每个事件中执行)。我想检索最近添加了性能的5个事件。
我尝试使用以下条件查询执行此操作:
List<Event> event = Event.createCriteria().listDistinct {
performances {
order("dateCreated", "desc")
isNotNull("dateCreated")
}
maxResults(count)
}
但是,您似乎无法使用maxResults
限制不同查询的结果集。有没有其他方法来实现这一目标,例如使用HQL?
答案 0 :(得分:4)
这应该足够了吗?
Event.executeQuery("select distinct e from Event as e \
inner join e.performances as p \
where p.dateCreated is not null \
order by p.dateCreated desc", [max: 5])
如果您还需要同一查询中每个performances
对应的event
,则可以使用inner join fetch
。