最近我将 grails 从 1.3.4 升级到 2.2.2,在尝试迭代域中定义为 hasMany 的 Set 时出现以下错误。
class A {
String name
static hasMany = [bList: B]
}
class B {
static belongsTo = [a:A]
}
class TestController {
def test = {
A a = A.get(1L)
def bList = a.bList
bList.each{}
}
}
上面的bList.each {}行抛出以下异常
java.lang.IllegalArgumentException:参数数量错误
在 org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener.onApplicationEvent(AbstractPersistenceEventListener.java:46)
在 com.test.TestController$_closure2.doCall(TestController.groovy:5)
在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
在 java.lang.Thread.run(Thread.java:680)