使用spring DataAccessExceptions而不是JPA PersistenceExceptions有什么好处吗?

时间:2010-03-03 16:11:09

标签: java spring jpa exception

我在Spring之外的DAO中使用JPA。 Spring框架定义了独立于数据库实现的DataAccessExceptions。非Spring用户使用Spring数据访问异常而不是JPA

是否有任何优势?

我认为Spring DataAccessExceptions存在,因为Spring处理了几个底层(例如Hibernate,Jpa,jdo,jdbc),并且Spring数据访问异常堆栈只有在我的应用程序让DAO使用几种不常见的技术时才有用标准接口(例如JPA)。

我是对的吗?

1 个答案:

答案 0 :(得分:2)

我会说你几乎就在那里。另一个优点是有一系列DataAccessExceptions(CleanupFailure,SQLGrammar等等),所以DAO可以被编程为显式捕获您可能期望的特定异常。

但是,由于您通常不期望数据访问错误,因此通常无论如何都要保留它,因此通常不需要DataAccessException的全部目的。

(我曾经是DataAccessException层次结构的忠实粉丝,但我实际上很少需要它,现在我很乐意处理原始的JPAException。)