@PersistenceContext
)@Deprecated public interface JpaCallback<T>
JpaTemplate
's
execution method, often as anonymous classes within a method implementation.
A typical implementation will call EntityManager.find/merge
to perform some operations on persistent objects.JpaTemplate
,
JpaTransactionManager
Modifier and Type | Method and Description |
---|---|
T |
doInJpa(EntityManager em)
Deprecated.
Gets called by
JpaTemplate.execute with an active
JPA EntityManager . |
T doInJpa(EntityManager em) throws PersistenceException
JpaTemplate.execute
with an active
JPA EntityManager
. Does not need to care about activating
or closing the EntityManager
, or handling transactions.
Note that JPA callback code will not flush any modifications to the database if not executed within a transaction. Thus, you need to make sure that JpaTransactionManager has initiated a JPA transaction when the callback gets called, at least if you want to write to the database.
Allows for returning a result object created within the callback, i.e. a domain object or a collection of domain objects. A thrown custom RuntimeException is treated as an application exception: It gets propagated to the caller of the template.
em
- active EntityManagernull
if nonePersistenceException
- if thrown by the JPA APIJpaTemplate.execute(org.springframework.orm.jpa.JpaCallback<T>)
,
JpaTemplate.executeFind(org.springframework.orm.jpa.JpaCallback<?>)