org.apache.onami.persist
Interface EntityManagerProvider

All Superinterfaces:
javax.inject.Provider<javax.persistence.EntityManager>

public interface EntityManagerProvider
extends javax.inject.Provider<javax.persistence.EntityManager>

Provider for EntityManager.

Even though this class extends the Provider interface it is not bound as a provider of EntityManager. The reason for this is that the EntityManager objects do have a life cycle and should therefore not be stored in instance/member variables.

The UnitOfWork defines the life cycle of the EntityManager. An entity manager will be created when the unit of work is started. It is open and valid for use during the entire unit of work. When the unit of work ends the entity manager is closed and can no longer be used.

It is a good practice to store this provider in a instance/member variable and only obtain an EntityManager instance in a method where it is used. This ensures that the method always has access to a valid EntityManager.

The EntityManagerProvider is thread save.


Method Summary
 javax.persistence.EntityManager get()
           
 

Method Detail

get

javax.persistence.EntityManager get()
                                    throws IllegalStateException
Specified by:
get in interface javax.inject.Provider<javax.persistence.EntityManager>
Returns:
the EntityManager.
Throws:
IllegalStateException - if UnitOfWork.isActive() returns false.


Copyright © 2013–2014 The Apache Software Foundation. All rights reserved.