I have a persistent hibernate object I obtained using session.save(object)
I changed it since.
I want to execute session.evict(object) to save memory, as I am done with the object.
The documentation to evict() here states that changes to the object will not be persisted. In other words – evict will cause me to lose changes I did to the object.
I could call session.flush() but that would flush all changes.
How can I persist changes made to a single persistent object before eviction?
Call
session.save(object)orsession.saveOrUpdate(object), then you can call evict on it if you must. However, you must flush the session before doing this. The session is designed to be a unit-of-work based interface, for good reason — transactional semantics would be a disaster without this feature. If you need to flush individual entities without flushing others that are part of the same session, you need to rethink your unit-of-work.