0
class Game {
Integer maxUsers
static hasMany = [users: User]
}
使用標準的API,是我應該做的就是與用戶少於maxUsers
屬性的號碼的所有域?
class Game {
Integer maxUsers
static hasMany = [users: User]
}
使用標準的API,是我應該做的就是與用戶少於maxUsers
屬性的號碼的所有域?
我不認爲用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)")
有沒有你不只是用在'users'一個'size'約束特別的原因?在我看來,如果你有最大數量的用戶,那麼你會以某種方式強制執行,因此'users'列表將永遠不會超過'maxUsers'。 – 2011-12-19 13:57:26
maxUsers屬性可能會更改。 – tiktak 2011-12-19 14:31:47