给出以下域类:
class Game {
Integer maxUsers
static hasMany = [users: User]
}
使用Criteria API,我该怎么做才能让所有域的用户数少于maxUsers
属性?
答案 0 :(得分:1)
我不认为可以使用Criteria api,因为Hibernate Criteria不支持HAVING子句。有一个开放的JIRA issue,您可以尝试在那里提交的补丁。
另一种方法是使用HQL:
def results = Game.findAll("from Game where id in (select g.id from Game g join g.users u group by g.id, g.maxUsers having count(u) < g.maxUsers)")