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