【问题标题】:Check if a object is in a collection with Groovy使用 Groovy 检查对象是否在集合中
【发布时间】:2014-03-24 06:21:13
【问题描述】:

我有一个名为 Event 的类,其中包含许多用户对象。

static hasMany = [users:User]

如何检查给定用户是否在该集合中?有这样的功能吗?

我认为 users.find(GivenUser) 会起作用,但显然不行!

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    问题是如何为集合中的对象评估相等性。在不知道您是否为集合中的对象实现了自己的等号或哈希码的情况下,很难说。但是,您总是可以这样做:

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

    正如 cmets 中所指出的,如果您有双向关系,最好使用 GORM 来查询。在这种情况下,这样做会更容易和更有效:

    User.findByOtherObject(otherObject)
    

    【讨论】:

    • 如果你有一个双向关系,User.someParentDomain,那么你实际上可以更快地做到这一点,而无需加载所有用户对象,使用 SomeParentDomain.findByUser(user)
    • 糟糕,我实际上是反过来的,抱歉:你想要的是 User.findBySomeParentDomain(parent)
    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多