Spring Framework

Interface JpaCallback<T>

Deprecated. as of Spring 3.1, in favor of native EntityManager usage (typically obtained through @PersistenceContext)

public interface JpaCallback<T>

Callback interface for JPA code. To be used with 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.

Juergen Hoeller
See Also:
JpaTemplate, JpaTransactionManager

Method Summary
 T doInJpa(javax.persistence.EntityManager em)
          Deprecated. Gets called by JpaTemplate.execute with an active JPA EntityManager.

Method Detail


T doInJpa(javax.persistence.EntityManager em)
          throws javax.persistence.PersistenceException
Gets called by 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 EntityManager
a result object, or null if none
javax.persistence.PersistenceException - if thrown by the JPA API
See Also:
JpaTemplate.execute(org.springframework.orm.jpa.JpaCallback), JpaTemplate.executeFind(org.springframework.orm.jpa.JpaCallback)

Spring Framework