对于这种情况
class A {
List<B> bList
}
class B {
Long chainId
}
如果chainId存在于chainIdList中,我试图从类型A的实例中获取类型B的项目。当我使用
a.bList*.find { chainIdList.contains(it.chainId) }
我收到错误:查询未返回唯一结果:4。 在我看来,不是groovy方法'find',而是调用Grails GORM方法,所以我从A数据库中为A中的每个2 B元素获取B类型的所有行(目前为4)。 有什么建议/见解吗?
答案 0 :(得分:0)
您在列表中的每个元素上调用find,而不是在列表本身上调用
删除*
,即。
a.bList.find { chainIdList.contains(it.chainId) }
或者找到所有匹配的元素
a.bList.findAll { chainIdList.contains(it.chainId) }