最近、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) で