2014-07-21 2 views
-1

У меня есть веб-приложение writtend в java, используя спящий режим и весну.Hibernate entity in tomcat session

В моем приложении мне нужно загрузить один большой объект спящего режима, подключить его и снова подключить его на сеансе tomcat (например, мастер) и в конце сохранить этот измененный объект.

Есть ли способ подключить и повторно подключить сущность к сеансу спящего режима?

На самом деле, мне нужно отобразить все сущности с помощью fetchMode EAGER ... иначе у меня есть lazyinitializationexception. Я пробовал использовать «hibernateSession.lock (entity, LockMode.NONE)», но он не работает.

Вторая проблема, с которой я столкнулся, - это спасение объекта; infact, перед вызовом метода слияния в сущности DAO мне нужно перезагрузить объект из базы данных и после объекта объединения, иначе данные удаленных объектов не будут удалены из DataBase ... это звучит для меня очень странно!

Есть ли у вас какие-либо предложения?

Заранее спасибо.

ответ

0

Веб-сессия полностью изолирована от спящего режима. Вы будете сериализовать сущность (и ее подкомпоненты), а затем десериализовать измененную сущность назад.

Infact до вызова метода слияния на сущности DAO, мне нужно перезагрузить объект из базы данных

Это неправильно, слияние:

Копия от состояния данный объект на постоянный объект с идентификатором .

+0

Итак, для первой проблемы я думаю, что делать нечего, тогда как для второй проблемы (сущность слияния), какое решение? Вам нужен образец кода? – user3363936

+0

Что происходит, если вы вызываете слияние с сущностью, которая имеет правильный идентификатор? Чего вы ожидаете, и что произойдет? Напишите тест/посмотрите журналы. Затем покажите код здесь ... – NimChimpsky

+0

Когда я вызываю merge, свойства и подклассы объекта вставлены или обновлены, поэтому semms работает нормально ... но если я удалю один элемент, отображаемый как ontToMany, он не будет удален из DataBase. Я надеюсь, что он будет удален. Хотя если до слияния я снова загружаю entoty, элемент удаляется из базы данных ... – user3363936