Сохранение Glassfish/Hibernate без явного вызова сохранения

Я использую Glassfish 2 и постоянство, управляемое контейнером, с Hibernate 3.2 в качестве поставщика постоянства. У меня есть метод поиска в моей бизнес-логике, который манипулирует некоторыми постоянными объектами, которые были получены через EntityManager. Манипуляции просто изменяют свойство String (удаление элемента из коллекции приводит к тому же эффекту).
Я не вызываю ничего вроде сохранить или сохранить на моем EntityManager. Я просто хочу вернуть некоторые измененные объекты моему клиенту.

Кажется, когда контейнер фиксирует транзакцию, изменения в моем объекте сохраняются автоматически. Есть ли какое-то волшебное поведение Hibernate или Glassfish, которое я полностью пропустил?


person micgn    schedule 22.11.2011    source источник


Ответы (1)


Если объект, который вы извлекли, находится в состоянии Managed, то в конце транзакции изменения, внесенные в объект, будут сохранены. Это контракт, которому должен подчиняться поставщик JPA.

Этот вопрос может быть вам полезен: транзакционные сохранения без вызова метода обновления

person Piotr Nowicki    schedule 22.11.2011