GORM,获取org.hibernate.HibernateException:在afterLoad()中打开事务时找到两个相同集合的表示

时间:2011-11-22 02:52:55

标签: hibernate grails gorm

class A {
  def afterLoad() {
    A.withTransaction {

    }
  }
}

大多数情况下,它都有效,直到我在控制器下面的列表中调用

A.createCriteria().list{.....}

将抛出异常:org.hibernate.HibernateException:找到同一集合的两个表示

如果我删除

A.withTransaction

然后它会起作用。

2 个答案:

答案 0 :(得分:1)

可能是

A.withNewSession { session ->
  ....
}

会帮助你

答案 1 :(得分:0)

我自己也遇到过这个例外,我真的很难过几天。您可以查看此问题的解决方案是否解决了您的问题:

HibernateException: Found two representations of same collection

这个解决方案对我不起作用,所以我写了一篇文章描述了这个问题以及我为解决它所做的工作you can read here。我相信你的问题与我的问题类似,因为事务方面,Hibernate在事务提交时刷新会话,而且抛出异常的地方。