org.springframework.dao.support
Class DataAccessUtils

java.lang.Object
  extended by org.springframework.dao.support.DataAccessUtils

public abstract class DataAccessUtils
extends Object

Miscellaneous utility methods for DAO implementations. Useful with any data access technology.

Since:
1.0.2
Author:
Juergen Hoeller

Constructor Summary
DataAccessUtils()
           
 
Method Summary
static int intResult(Collection results)
          Return a unique int result from the given Collection.
static long longResult(Collection results)
          Return a unique long result from the given Collection.
static
<T> T
objectResult(Collection<?> results, Class<T> requiredType)
          Return a unique result object from the given Collection.
static
<T> T
requiredSingleResult(Collection<T> results)
          Return a single result object from the given Collection.
static
<T> T
requiredUniqueResult(Collection<T> results)
          Return a unique result object from the given Collection.
static
<T> T
singleResult(Collection<T> results)
          Return a single result object from the given Collection.
static RuntimeException translateIfNecessary(RuntimeException rawException, PersistenceExceptionTranslator pet)
          Return a translated exception if this is appropriate, otherwise return the input exception.
static
<T> T
uniqueResult(Collection<T> results)
          Return a unique result object from the given Collection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataAccessUtils

public DataAccessUtils()
Method Detail

singleResult

public static <T> T singleResult(Collection<T> results)
                      throws IncorrectResultSizeDataAccessException
Return a single result object from the given Collection.

Returns null if 0 result objects found; throws an exception if more than 1 element found.

Parameters:
results - the result Collection (can be null)
Returns:
the single result object, or null if none
Throws:
IncorrectResultSizeDataAccessException - if more than one element has been found in the given Collection

requiredSingleResult

public static <T> T requiredSingleResult(Collection<T> results)
                              throws IncorrectResultSizeDataAccessException
Return a single result object from the given Collection.

Throws an exception if 0 or more than 1 element found.

Parameters:
results - the result Collection (can be null)
Returns:
the single result object
Throws:
IncorrectResultSizeDataAccessException - if more than one element has been found in the given Collection
EmptyResultDataAccessException - if no element at all has been found in the given Collection

uniqueResult

public static <T> T uniqueResult(Collection<T> results)
                      throws IncorrectResultSizeDataAccessException
Return a unique result object from the given Collection.

Returns null if 0 result objects found; throws an exception if more than 1 instance found.

Parameters:
results - the result Collection (can be null)
Returns:
the unique result object, or null if none
Throws:
IncorrectResultSizeDataAccessException - if more than one result object has been found in the given Collection
See Also:
CollectionUtils.hasUniqueObject(java.util.Collection)

requiredUniqueResult

public static <T> T requiredUniqueResult(Collection<T> results)
                              throws IncorrectResultSizeDataAccessException
Return a unique result object from the given Collection.

Throws an exception if 0 or more than 1 instance found.

Parameters:
results - the result Collection (can be null)
Returns:
the unique result object
Throws:
IncorrectResultSizeDataAccessException - if more than one result object has been found in the given Collection
EmptyResultDataAccessException - if no result object at all has been found in the given Collection
See Also:
CollectionUtils.hasUniqueObject(java.util.Collection)

objectResult

public static <T> T objectResult(Collection<?> results,
                                 Class<T> requiredType)
                      throws IncorrectResultSizeDataAccessException,
                             TypeMismatchDataAccessException
Return a unique result object from the given Collection. Throws an exception if 0 or more than 1 result objects found, of if the unique result object is not convertable to the specified required type.

Parameters:
results - the result Collection (can be null)
Returns:
the unique result object
Throws:
IncorrectResultSizeDataAccessException - if more than one result object has been found in the given Collection
EmptyResultDataAccessException - if no result object at all has been found in the given Collection
TypeMismatchDataAccessException - if the unique object does not match the specified required type

intResult

public static int intResult(Collection results)
                     throws IncorrectResultSizeDataAccessException,
                            TypeMismatchDataAccessException
Return a unique int result from the given Collection. Throws an exception if 0 or more than 1 result objects found, of if the unique result object is not convertable to an int.

Parameters:
results - the result Collection (can be null)
Returns:
the unique int result
Throws:
IncorrectResultSizeDataAccessException - if more than one result object has been found in the given Collection
EmptyResultDataAccessException - if no result object at all has been found in the given Collection
TypeMismatchDataAccessException - if the unique object in the collection is not convertable to an int

longResult

public static long longResult(Collection results)
                       throws IncorrectResultSizeDataAccessException,
                              TypeMismatchDataAccessException
Return a unique long result from the given Collection. Throws an exception if 0 or more than 1 result objects found, of if the unique result object is not convertable to a long.

Parameters:
results - the result Collection (can be null)
Returns:
the unique long result
Throws:
IncorrectResultSizeDataAccessException - if more than one result object has been found in the given Collection
EmptyResultDataAccessException - if no result object at all has been found in the given Collection
TypeMismatchDataAccessException - if the unique object in the collection is not convertable to a long

translateIfNecessary

public static RuntimeException translateIfNecessary(RuntimeException rawException,
                                                    PersistenceExceptionTranslator pet)
Return a translated exception if this is appropriate, otherwise return the input exception.

Parameters:
rawException - exception we may wish to translate
pet - PersistenceExceptionTranslator to use to perform the translation
Returns:
a translated exception if translation is possible, or the raw exception if it is not