Object Lifecycle

During the persistence process an object goes through lifecycle changes. Below we demonstrate the primary object lifecycle changes for JPA. With JPA these lifecycles are referred to as "persistence contexts". There are two : transaction (default for J2EE usage) and extended (default for J2SE usage). DataNucleus allows control over which to use by specification of the persistence property datanucleus.jpa.persistenceContextType

Transaction

A newly created object is transient . You then persist it and it becomes persistent . You then commit the transaction and it is detached for use elsewhere in the application, in detached state. You then attach any changes back to persistence and it becomes persistent again. Finally when you delete the object from persistence and commit that transaction it is in transient state.

Extended

So a newly created object is transient . You then persist it and it becomes persistent . You then commit the transaction and it remains managed in persistent state. When you close the EntityManager it becomes detached . Finally when you delete the object from persistence and commit that transaction it is in transient state.