Я боролся с этой ошибкой уже неделю, и я серьезно схожу с ума по этому поводу! Я перепробовал множественные реализации, обходные пути и взломы, а что нет, но я просто продолжаю сталкиваться с еще одним исключением.
Я использую плагин Executor для асинхронного запуска метода:
runAsync{
run(...)
}
Метод изначально удаляет некоторые объекты:
page.delete(flush:true)
А потом возможно воссоздать эти объекты:
def page = new Page(type : Page.TYPE_TABLE, domain : domainVersion.domain, identifier : tableName)
page.save(flush: true, failOnError: true)
Но это не так со следующим исключением:
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.ramboll.egs.ohs.domain.Domain#1]
Связь между Page
и Domain
просто реализуется с помощью Page
, имеющего атрибут Domain
. Нет hasMany
og belongsTo
- поскольку я был обескуражен этим в предыдущем посте из-за проблем с производительностью.
Я думаю, что перепробовал все мыслимые комбинации save
, merge
, withTransachtion
и PersistenceContextInterceptor
...
Как это должно работать? Примеры пожалуйста.
Заранее спасибо!