所以我有一个清单:
def list = [1,2,3,...]
然后我有一个来自数据库的对象列表:
def loo = findAllBySomeField()
对于列表中的每个对象,如果该对象上的字段A与第一个列表中的任何内容都不匹配,那么我想将对象上的字段B添加到另一个列表中。如果没有一堆.each和.collect闭包,最好的方法是什么?我查看了intersect()和removeAll(),但似乎没有干净简单的方法来做到这一点。
还有findAllBySomeFieldNotInList()吗?似乎grails只有InList动态方法,但没有NotInList()。
答案 0 :(得分:1)
createCriteria().list() {
not {
inList 'someField', unwantedValues
}
projections {
property 'fieldB' // or distinct instead of property
}
}
应该