有没有办法将HibernateException转换为其他东西,然后是Spring中的DataAccessException

时间:2013-12-13 10:43:48

标签: java spring exception jpa spring-data-jpa

我试图在Hibernate中的事务持久性期间发生约束违规错误。

我看到如何干扰HibernateExceptions的唯一方法是在春天通过PersistenceExceptionTranslator,

package org.springframework.dao.support;

import org.springframework.dao.DataAccessException;

public interface PersistenceExceptionTranslator {

    DataAccessException translateExceptionIfPossible(RuntimeException ex);

}

将Hibernate异常转换为DataAccessExceptions,但这意味着我需要从DataAccessExceptions继承我的异常层次结构。

有没有其他自然的方法来实现这一点,而不在Exception继承层次结构中引入DataAceessExceptions?

1 个答案:

答案 0 :(得分:1)

您可以从存储库方法中捕获HibernateException并将其重新抛出为已检查的异常。但是你必须在上层处理异常,但你也可以简单地将它抛到你的代码层之外。