【问题标题】:Is there any advantage to use spring DataAccessExceptions instead of JPA PersistenceExceptions?使用 spring DataAccessExceptions 而不是 JPA PersistenceExceptions 有什么好处吗?
【发布时间】:2010-03-03 16:11:08
【问题描述】:
我在 Spring 之外的 DAO 中使用 JPA。 Spring 框架定义了独立于数据库实现的 DataAccessExceptions。非 Spring 用户使用 Spring 数据访问异常而不是 JPA 有什么优势吗?
我猜想 Spring DataAccessExceptions 的存在是因为 Spring 处理了几个底层(例如 Hibernate、Jpa、jdo、jdbc),并且 Spring Data Access Exception 堆栈只有在我的应用程序具有使用几种不同技术的 DAO 时才有用标准接口(如 JPA)。
我说的对吗?
【问题讨论】:
标签:
java
spring
jpa
exception
【解决方案1】:
我会说你几乎在那里。另一个优点是有一系列 DataAccessExceptions(CleanupFailure、SQLGrammar 等等),因此可以对 DAO 进行编程以显式捕获您可能期望的特定异常。
但由于您通常不会预料到数据访问错误,因此您通常不会发现它,因此通常不需要 DataAccessException 的全部用途。
(我曾经是 DataAccessException 层次结构的忠实拥护者,但实际上我很少需要它,所以我现在很乐意处理原始 JPAException)。