0

在我的 Grails 应用程序的域模型中,我在 Event 和 Performance 之间存在 1-N 关系(因为许多艺术家可能会在每个活动中表演)。我想检索最近添加了性能的 5 个事件。

我尝试使用以下条件查询来执行此操作:

    List<Event> event = Event.createCriteria().listDistinct {
        performances {
            order("dateCreated", "desc")
            isNotNull("dateCreated")
        }
        maxResults(count)
    }

但是,您似乎无法使用maxResults. 是否有另一种方法来实现这一点,例如使用 HQL?

4

1 回答 1

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对应每个,你可以使用.eventinner join fetch

于 2013-07-08T21:35:17.553 回答