2014-02-22 251 views
0

我有一個叫做Event的類,它裏面有很多用戶對象。檢查一個對象是否在Groovy集合中

static hasMany = [users:User] 

如何檢查給定的用戶是否在該集合中?有沒有這樣做的功能?

我以爲users.find(GivenUser)會工作,但顯然不是!

回答

4

問題是如何評估集合中對象的平等性。不知道你是否已經在你的集合中實現了你自己的equals或哈希碼,這很難說。但是,你總是可以做這樣的事情:

users.find{it.id == givenUser.id} 

正如它更好地使用GORM來查詢這個,如果你有一個雙向關係的評論中指出。在這種情況下,它會更容易和高效:

User.findByOtherObject(otherObject) 
+3

如果你有一個雙向的關係,User.someParentDomain,那麼你其實可以做得更快,無需加載所有的用戶對象,與SomeParentDomain.findByUser(用戶)用於loteq的+1 – loteq

+0

+1。 正如@loteq所述。 –

+0

哎呀,我其實反過來說,對不起: 這是你想要的User.findBySomeParentDomain(parent) – loteq

相關問題