public class HibernateExceptionTranslator extends ObjectSE implements PersistenceExceptionTranslator
HibernateException インスタンスを Spring の DataAccessException 階層に変換できる PersistenceExceptionTranslator。LocalSessionFactoryBean によって拡張されるため、LocalSessionFactoryBean に加えてこのトランスレータを宣言する必要はありません。
@Configuration クラスでコンテナーを構成する場合、この型の @Bean を手動で登録する必要があります。
PersistenceExceptionTranslationPostProcessor, SessionFactoryUtils.convertHibernateAccessException(HibernateException)| コンストラクターと説明 |
|---|
HibernateExceptionTranslator() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected DataAccessException | convertHibernateAccessException(HibernateException ex) 指定された HibernateException を org.springframework.dao 階層からの適切な例外に変換します。 |
DataAccessException | translateExceptionIfPossible(RuntimeExceptionSE ex) 可能であれば、永続フレームワークによってスローされた特定のランタイム例外を、Spring の汎用 DataAccessException 階層からの対応する例外に変換します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic DataAccessException translateExceptionIfPossible(RuntimeExceptionSE ex)
PersistenceExceptionTranslatorDataAccessException 階層からの対応する例外に変換します。このトランスレータが理解できない例外は変換しないでください。たとえば、別の永続化フレームワークが原因である場合や、ユーザーコードが原因である場合や、永続性に関係のない場合などです。
特に重要なのは、制約違反などで、DataIntegrityViolationException に正しく変換することです。実装では、Spring JDBC の高度な例外変換を使用して、根本的な原因として SQLException のイベントに関する詳細情報を提供できます。
PersistenceExceptionTranslator の translateExceptionIfPossible ex - 変換する RuntimeExceptionnull。この場合、実際の永続性の問題ではなく、ユーザーコードが原因である可能性があります。)DataIntegrityViolationException, SQLExceptionTranslatorprotected DataAccessException convertHibernateAccessException(HibernateException ex)
org.springframework.dao 階層からの適切な例外に変換します。ex - 発生した HibernateExceptionSessionFactoryUtils.convertHibernateAccessException(org.hibernate.HibernateException)