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
    Modifier and Type | Method and Description
    --- | ---
    `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