我正在努力让Hibernate中事务持久化期间发生的违反约束的错误更有意义。
我看到如何干扰Hibernate异常的唯一方法是通过春季的PersistenceExceptionTranslator,
package org.springframework.dao.support;
import org.springframework.dao.DataAccessException;
public interface PersistenceExceptionTranslator {
DataAccessException translateExceptionIfPossible(RuntimeException ex);
}
它将Hibernate异常转换为DataAccessException,但这意味着我需要从DataAccessException继承我的异常层次结构。
有没有其他自然的方法可以做到这一点,而不在异常继承层次结构中引入DataAceessException
您可以捕获HibernateException
,并从存储库方法中将其作为检查的异常重新抛出。但是,您将不得不在上层处理异常,但您也可以简单地将其抛出代码层之外。