我想使用 grails 1.3.7 将两个特定域类的实例列表相交。
问题是,一个列表的实例是由 javasisst 创建的,因此交集的结果始终是一个空列表。
这是我的域名:
class User {
...
static hasMany = [foos : Foo]
...
}
class Foo {
...
static hasMany = [bars : Bar]
...
}
class Bar {
...
static hasMany = [localizedTitles : LocalizedTitle]
...
}
我得到这样的用户所有Bar
实例的列表:
def allBarsOfUser = userInstance.foos.bars.flatten()
并尝试与另一个Bar
实例列表相交:
def intersectedBars = bars.intersect(allBarsOfUser)
问题是,allBarsOfUser
ist的元素类型和元素的Bar_$$_javassist_139
类型bars
总是Bar
如此。intersectedBars
[]
我通过执行以下操作解决了我的问题 - 但我不喜欢该解决方案:
def allBarsOfUser = userInstance.foos.bars.flatten().collect{Bar.get(it.id)}
什么是更好的解决方案?
我怎么能Bar_$$_javassist_139
这样Bar
才能intersect()
正常工作?