将列表与Groovy中的对象列表上的字段进行比较的最佳方法是什么?

时间:2015-02-13 00:06:45

标签: grails groovy gorm

所以我有一个清单:

def list = [1,2,3,...]

然后我有一个来自数据库的对象列表:

def loo = findAllBySomeField()

对于列表中的每个对象,如果该对象上的字段A与第一个列表中的任何内容都不匹配,那么我想将对象上的字段B添加到另一个列表中。如果没有一堆.each和.collect闭包,最好的方法是什么?我查看了intersect()和removeAll(),但似乎没有干净简单的方法来做到这一点。

还有findAllBySomeFieldNotInList()吗?似乎grails只有InList动态方法,但没有NotInList()。

1 个答案:

答案 0 :(得分:1)

createCriteria().list() {
    not {
        inList 'someField', unwantedValues
    }
    projections {
        property 'fieldB' // or distinct instead of property
    }
}

应该