org.springframework.dao.support

## Class DataAccessUtils

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

Constructors
Constructor and Description
`DataAccessUtils()`

### Method Summary

Methods
`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