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:
  • 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:
    • 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: