The Spring Framework

org.springframework.orm.jpa
Interface JpaCallback


public interface JpaCallback

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.

Since:
2.0
Author:
Juergen Hoeller
See Also:
JpaTemplate, JpaTransactionManager

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

Method Detail

doInJpa

Object 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.

Parameters:
em - active EntityManager
Returns:
a result object, or null if none
Throws:
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)

The Spring Framework

Copyright © 2002-2008 The Spring Framework.