2011-12-19 27 views
0

所有域:標準,瞭解與收集不到鑑於以下域類屬性

class Game { 
    Integer maxUsers 
    static hasMany = [users: User] 
} 

使用標準的API,是我應該做的就是與用戶少於maxUsers屬性的號碼的所有域?

+0

有沒有你不只是用在'users'一個'size'約束特別的原因?在我看來,如果你有最大數量的用戶,那麼你會以某種方式強制執行,因此'users'列表將永遠不會超過'maxUsers'。 – 2011-12-19 13:57:26

+0

maxUsers屬性可能會更改。 – tiktak 2011-12-19 14:31:47

回答

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)")