0

最近我将 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)

4

1 回答 1

0

所以我发现了这个问题

B 类附加了一个afterLoad()事件挂钩,由于某种奇怪的原因抛出java.lang.IllegalArgumentException: wrong number of arguments异常,我现在已将其更改为onLoad() Happy Days Now。

谢谢侯赛因

于 2013-07-10T09:29:49.320 回答