Package org.springframework.orm.hibernate5

# Class HibernateExceptionTranslator

java.lang.Object
org.springframework.orm.hibernate5.HibernateExceptionTranslator

All Implemented Interfaces:
  `org.springframework.dao.support.PersistenceExceptionTranslator`

Direct Known Subclasses:
  `LocalSessionFactoryBean`

public class HibernateExceptionTranslator extends Object implements org.springframework.dao.support.PersistenceExceptionTranslator
`PersistenceExceptionTranslator` capable of translating `HibernateException` instances to Spring's `DataAccessException` hierarchy. As of Spring 4.3.2 and Hibernate 5.2, it also converts standard JPA `PersistenceException` instances.

Extended by `LocalSessionFactoryBean`, so there is no need to declare this translator in addition to a `LocalSessionFactoryBean`.

When configuring the container with `@Configuration` classes, a `@Bean` of this type must be registered manually.

Since:
  4.2
Author:
  Juergen Hoeller
See Also:
  - `PersistenceExceptionTranslationPostProcessor`
  - `SessionFactoryUtils.convertHibernateAccessException(HibernateException)`
  - `EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(RuntimeException)`

## Constructor Summary

Constructors
Constructor
Description
`HibernateExceptionTranslator()`

## Method Summary

Modifier and Type
Method
Description
`protected org.springframework.dao.DataAccessException`
`convertHibernateAccessException(HibernateException ex)`
Convert the given HibernateException to an appropriate exception from the `org.springframework.dao` hierarchy.
`void`
`setJdbcExceptionTranslator(org.springframework.jdbc.support.SQLExceptionTranslator jdbcExceptionTranslator)`
Set the JDBC exception translator for Hibernate exception translation purposes.
`org.springframework.dao.DataAccessException`
`translateExceptionIfPossible(RuntimeException ex)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### HibernateExceptionTranslator

public HibernateExceptionTranslator()

## Method Details

### setJdbcExceptionTranslator

public void setJdbcExceptionTranslator(org.springframework.jdbc.support.SQLExceptionTranslator jdbcExceptionTranslator)
Set the JDBC exception translator for Hibernate exception translation purposes.

Applied to any detected `SQLException` root cause of a Hibernate `JDBCException`, overriding Hibernate's own `SQLException` translation (which is based on a Hibernate Dialect for a specific target database).

Since:
  5.1
See Also:
  - `SQLException`
  - `JDBCException`
  - `SQLErrorCodeSQLExceptionTranslator`
  - `SQLStateSQLExceptionTranslator`

### translateExceptionIfPossible

@Nullable public org.springframework.dao.DataAccessException translateExceptionIfPossible(RuntimeException ex)

Specified by:
  `translateExceptionIfPossible` in interface `org.springframework.dao.support.PersistenceExceptionTranslator`

### convertHibernateAccessException

protected org.springframework.dao.DataAccessException convertHibernateAccessException(HibernateException ex)
Convert the given HibernateException to an appropriate exception from the `org.springframework.dao` hierarchy.

Will automatically apply a specified SQLExceptionTranslator to a Hibernate JDBCException, otherwise rely on Hibernate's default translation.

Parameters:
  `ex` - the HibernateException that occurred
Returns:
  a corresponding DataAccessException
See Also:
  - `SessionFactoryUtils.convertHibernateAccessException(org.hibernate.HibernateException)`