public interface

JdoOperations

org.springframework.orm.jdo.JdoOperations
Known Indirect Subclasses

Class Overview

Interface that specifies a basic set of JDO operations, implemented by JdoTemplate. Not often used, but a useful option to enhance testability, as it can easily be mocked or stubbed.

Defines JdoTemplate's data access methods that mirror various JDO javax.jdo.PersistenceManager methods. Users are strongly encouraged to read the JDO PersistenceManager javadocs for details on the semantics of those methods.

Note that lazy loading will just work with an open JDO PersistenceManager, either within a managed transaction or within OpenPersistenceManagerInViewFilter/ OpenPersistenceManagerInViewInterceptor. Furthermore, some operations just make sense within transactions, for example: evict, evictAll, flush.

Updated to build on JDO 2.0 or higher, as of Spring 2.5.

Summary

Public Methods
abstract void deletePersistent(Object entity)
Delete the given persistent instance.
abstract void deletePersistentAll(Collection entities)
Delete all given persistent instances.
abstract <T> T detachCopy(T entity)
Detach a copy of the given persistent instance from the current JDO transaction, for use outside a JDO transaction (for example, as web form object).
abstract <T> Collection<T> detachCopyAll(Collection<T> entities)
Detach copies of the given persistent instances from the current JDO transaction, for use outside a JDO transaction (for example, as web form objects).
abstract void evict(Object entity)
Remove the given object from the PersistenceManager cache.
abstract void evictAll(Collection entities)
Remove all given objects from the PersistenceManager cache.
abstract void evictAll()
Remove all objects from the PersistenceManager cache.
abstract <T> T execute(JdoCallback<T> action)
Execute the action specified by the given action object within a PersistenceManager.
abstract Collection executeFind(JdoCallback<?> action)
Execute the specified action assuming that the result object is a Collection.
abstract <T> Collection<T> find(Class<T> entityClass, String filter, String parameters, Object... values)
Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values.
abstract <T> Collection<T> find(Class<T> entityClass, String filter, String parameters, Map<String, ?> values, String ordering)
Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values, with the given result ordering.
abstract Collection find(String queryString)
Find persistent instances through the given single-string JDOQL query.
abstract Collection find(String queryString, Map<String, ?> values)
Find persistent instances through the given single-string JDOQL query.
abstract <T> Collection<T> find(Class<T> entityClass, String filter, String parameters, Object[] values, String ordering)
Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values, with the given result ordering.
abstract <T> Collection<T> find(Class<T> entityClass)
Find all persistent instances of the given class.
abstract Collection find(String language, Object queryObject)
Find persistent instances through the given query object in the specified query language.
abstract Collection find(String queryString, Object... values)
Find persistent instances through the given single-string JDOQL query.
abstract <T> Collection<T> find(Class<T> entityClass, String filter)
Find all persistent instances of the given class that match the given JDOQL filter.
abstract <T> Collection<T> find(Class<T> entityClass, String filter, String parameters, Map<String, ?> values)
Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values.
abstract <T> Collection<T> find(Class<T> entityClass, String filter, String ordering)
Find all persistent instances of the given class that match the given JDOQL filter, with the given result ordering.
abstract <T> Collection<T> findByNamedQuery(Class<T> entityClass, String queryName, Object... values)
Find persistent instances through the given named query.
abstract <T> Collection<T> findByNamedQuery(Class<T> entityClass, String queryName, Map<String, ?> values)
Find persistent instances through the given named query.
abstract <T> Collection<T> findByNamedQuery(Class<T> entityClass, String queryName)
Find persistent instances through the given named query.
abstract void flush()
Flush all transactional modifications to the database.
abstract <T> T getObjectById(Class<T> entityClass, Object idValue)
Return the persistent instance of the given entity class with the given id value, throwing an exception if not found.
abstract Object getObjectById(Object objectId)
Return the persistent instance with the given JDO object id, throwing an exception if not found.
abstract <T> T makePersistent(T entity)
Make the given transient instance persistent.
abstract <T> Collection<T> makePersistentAll(Collection<T> entities)
Make the given transient instances persistent.
abstract void refresh(Object entity)
Re-read the state of the given persistent instance.
abstract void refreshAll(Collection entities)
Re-read the state of all given persistent instances.
abstract void refreshAll()
Re-read the state of all persistent instances.

Public Methods

public abstract void deletePersistent (Object entity)

Delete the given persistent instance.

Parameters
entity the persistent instance to delete
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#deletePersistent(Object)

public abstract void deletePersistentAll (Collection entities)

Delete all given persistent instances.

This can be combined with any of the find methods to delete by query in two lines of code.

Parameters
entities the persistent instances to delete
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#deletePersistentAll(java.util.Collection)

public abstract T detachCopy (T entity)

Detach a copy of the given persistent instance from the current JDO transaction, for use outside a JDO transaction (for example, as web form object).

Parameters
entity the persistent instance to detach
Returns
  • the corresponding detached instance
See Also
  • javax.jdo.PersistenceManager#detachCopy(Object)

public abstract Collection<T> detachCopyAll (Collection<T> entities)

Detach copies of the given persistent instances from the current JDO transaction, for use outside a JDO transaction (for example, as web form objects).

Parameters
entities the persistent instances to detach
Returns
  • the corresponding detached instances
See Also
  • javax.jdo.PersistenceManager#detachCopyAll(Collection)

public abstract void evict (Object entity)

Remove the given object from the PersistenceManager cache.

Parameters
entity the persistent instance to evict
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#evict(Object)

public abstract void evictAll (Collection entities)

Remove all given objects from the PersistenceManager cache.

Parameters
entities the persistent instances to evict
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#evictAll(java.util.Collection)

public abstract void evictAll ()

Remove all objects from the PersistenceManager cache.

Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#evictAll()

public abstract T execute (JdoCallback<T> action)

Execute the action specified by the given action object within a PersistenceManager. Application exceptions thrown by the action object get propagated to the caller (can only be unchecked). JDO exceptions are transformed into appropriate DAO ones. Allows for returning a result object, i.e. a domain object or a collection of domain objects.

Note: Callback code is not supposed to handle transactions itself! Use an appropriate transaction manager like JdoTransactionManager.

Parameters
action callback object that specifies the JDO action
Returns
  • a result object returned by the action, or null
Throws
DataAccessException in case of JDO errors

public abstract Collection executeFind (JdoCallback<?> action)

Execute the specified action assuming that the result object is a Collection. This is a convenience method for executing JDO queries within an action.

Parameters
action callback object that specifies the JDO action
Returns
  • a Collection result returned by the action, or null
Throws
DataAccessException in case of JDO errors

public abstract Collection<T> find (Class<T> entityClass, String filter, String parameters, Object... values)

Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values.

Parameters
entityClass a persistent class
filter the JDOQL filter to match
parameters the JDOQL parameter declarations
values the corresponding parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)
  • javax.jdo.Query#declareParameters
  • javax.jdo.Query#executeWithArray

public abstract Collection<T> find (Class<T> entityClass, String filter, String parameters, Map<String, ?> values, String ordering)

Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values, with the given result ordering.

Parameters
entityClass a persistent class
filter the JDOQL filter to match
parameters the JDOQL parameter declarations
values a Map with parameter names as keys and parameter values
ordering the ordering of the result (or null if none)
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)
  • javax.jdo.Query#declareParameters
  • javax.jdo.Query#executeWithMap
  • javax.jdo.Query#setOrdering

public abstract Collection find (String queryString)

Find persistent instances through the given single-string JDOQL query.

Parameters
queryString the single-string JDOQL query
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(String)

public abstract Collection find (String queryString, Map<String, ?> values)

Find persistent instances through the given single-string JDOQL query.

Parameters
queryString the single-string JDOQL query
values a Map with parameter names as keys and parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(String)

public abstract Collection<T> find (Class<T> entityClass, String filter, String parameters, Object[] values, String ordering)

Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values, with the given result ordering.

Parameters
entityClass a persistent class
filter the JDOQL filter to match
parameters the JDOQL parameter declarations
values the corresponding parameter values
ordering the ordering of the result (or null if none)
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)
  • javax.jdo.Query#declareParameters
  • javax.jdo.Query#executeWithArray
  • javax.jdo.Query#setOrdering

public abstract Collection<T> find (Class<T> entityClass)

Find all persistent instances of the given class.

Parameters
entityClass a persistent class
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class)

public abstract Collection find (String language, Object queryObject)

Find persistent instances through the given query object in the specified query language.

Parameters
language the query language (javax.jdo.Query#JDOQL or javax.jdo.Query#SQL, for example)
queryObject the query object for the specified language
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(String, Object)
  • javax.jdo.Query#JDOQL
  • javax.jdo.Query#SQL

public abstract Collection find (String queryString, Object... values)

Find persistent instances through the given single-string JDOQL query.

Parameters
queryString the single-string JDOQL query
values the corresponding parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(String)

public abstract Collection<T> find (Class<T> entityClass, String filter)

Find all persistent instances of the given class that match the given JDOQL filter.

Parameters
entityClass a persistent class
filter the JDOQL filter to match (or null if none)
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)

public abstract Collection<T> find (Class<T> entityClass, String filter, String parameters, Map<String, ?> values)

Find all persistent instances of the given class that match the given JDOQL filter, using the given parameter declarations and parameter values.

Parameters
entityClass a persistent class
filter the JDOQL filter to match
parameters the JDOQL parameter declarations
values a Map with parameter names as keys and parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)
  • javax.jdo.Query#declareParameters
  • javax.jdo.Query#executeWithMap

public abstract Collection<T> find (Class<T> entityClass, String filter, String ordering)

Find all persistent instances of the given class that match the given JDOQL filter, with the given result ordering.

Parameters
entityClass a persistent class
filter the JDOQL filter to match (or null if none)
ordering the ordering of the result (or null if none)
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newQuery(Class, String)
  • javax.jdo.Query#setOrdering

public abstract Collection<T> findByNamedQuery (Class<T> entityClass, String queryName, Object... values)

Find persistent instances through the given named query.

Parameters
entityClass a persistent class
queryName the name of the query
values the corresponding parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newNamedQuery(Class, String)

public abstract Collection<T> findByNamedQuery (Class<T> entityClass, String queryName, Map<String, ?> values)

Find persistent instances through the given named query.

Parameters
entityClass a persistent class
queryName the name of the query
values a Map with parameter names as keys and parameter values
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newNamedQuery(Class, String)

public abstract Collection<T> findByNamedQuery (Class<T> entityClass, String queryName)

Find persistent instances through the given named query.

Parameters
entityClass a persistent class
queryName the name of the query
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#newNamedQuery(Class, String)

public abstract void flush ()

Flush all transactional modifications to the database.

Only invoke this for selective eager flushing, for example when JDBC code needs to see certain changes within the same transaction. Else, it's preferable to rely on auto-flushing at transaction completion.

Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#flush()
  • JdoDialect#flush(javax.jdo.PersistenceManager)

public abstract T getObjectById (Class<T> entityClass, Object idValue)

Return the persistent instance of the given entity class with the given id value, throwing an exception if not found.

The given id value is typically just unique within the namespace of the persistent class. Its toString value must correspond to the toString value of the corresponding JDO object id.

Usually, the passed-in value will have originated from the primary key field of a persistent object that uses JDO's application identity.

Parameters
entityClass a persistent class
idValue an id value of the persistent instance
Returns
  • the persistent instance
Throws
ObjectRetrievalFailureException if not found
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#getObjectById(Object, boolean)
  • javax.jdo.PersistenceManager#getObjectById(Class, Object)

public abstract Object getObjectById (Object objectId)

Return the persistent instance with the given JDO object id, throwing an exception if not found.

A JDO object id identifies both the persistent class and the id within the namespace of that class.

Parameters
objectId a JDO object id of the persistent instance
Returns
  • the persistent instance
Throws
ObjectRetrievalFailureException if not found
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#getObjectById(Object, boolean)

public abstract T makePersistent (T entity)

Make the given transient instance persistent. Attach the given entity if the instance is detached.

Parameters
entity the transient instance to make persistent
Returns
  • the persistent instance
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#makePersistent(Object)

public abstract Collection<T> makePersistentAll (Collection<T> entities)

Make the given transient instances persistent. Attach the given entities if the instances are detached.

Parameters
entities the transient instances to make persistent
Returns
  • the persistent instances
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#makePersistentAll(java.util.Collection)

public abstract void refresh (Object entity)

Re-read the state of the given persistent instance.

Parameters
entity the persistent instance to re-read
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#refresh(Object)

public abstract void refreshAll (Collection entities)

Re-read the state of all given persistent instances.

Parameters
entities the persistent instances to re-read
Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#refreshAll(java.util.Collection)

public abstract void refreshAll ()

Re-read the state of all persistent instances.

Throws
DataAccessException in case of JDO errors
See Also
  • javax.jdo.PersistenceManager#refreshAll()