GORM, получить org.hibernate.HibernateException: найдено два представления одной коллекции при открытой транзакции в afterLoad () - PullRequest
1 голос
/ 22 ноября 2011
class A {
  def afterLoad() {
    A.withTransaction {

    }
  }
}

В большинстве случаев это работает, пока я не вызову приведенный ниже список в контроллере.

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

сгенерирует исключение: org.hibernate.HibernateException: найдено два представления из одной коллекции

Если я удалю

A.withTransaction

, тогда это будет работать.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

может быть

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

поможет вам

0 голосов
/ 24 августа 2012

Я сам сталкивался с этим исключением, и я был действительно ошарашен в течение нескольких дней.Вы можете убедиться, что решение этого вопроса решает вашу проблему:

HibernateException: найдено два представления одной коллекции

Это решение не сработало для меня, поэтому янаписал статью, описывающую проблему и то, что я сделал для ее решения, которую вы можете прочитать здесь .Я полагаю, что ваша проблема похожа на мою из-за аспекта транзакции, Hibernate сбрасывает сеанс, когда транзакция фиксируется, и именно здесь выдается исключение.

...