java - Hibernate数据访问是否会抛出类似于Spring DeadlockLoserDataAccessException或其他TransientDataAccessException的异常?

标签 java hibernate spring exception runtimeexception

我目前正在开发一个在不同数据库上使用数据访问的项目。我们的主数据库是通过 Hibernate 访问的(通过 Criteria 框架或 HQL 查询),但我们也可以使用普通 JDBC/SQL 查询(通过 Spring-Jdbc)访问其他数据库。

对于我们的一些 JDBC 调用,我们必须处理 DAO 层抛出某些 Spring 运行时 TransientDataAccessException 的可能性,例如 DeadlockLoserDataAccessExceptionCannotAcquireLockException

我的问题:我们是否应该为 Hibernate DAO 抛出的类似异常做好计划?编写会表现出此类异常的测试非常困难,如果无法抛出这些异常,我不想构建对这些异常的支持。如果可以的话,具体有哪些异常(exception)?你觉得怎么样?

最佳答案

从 Spring 支持的持久性实现中抛出的异常并不是真正 Root 于 Spring => 它们是数据访问异常

因此,您可以从纯 Hibernate 实现中获得类似的异常,例如:

LockAcquisitionException :表示获取数据库锁时出现问题

话虽如此,专门测试这些异常并不明智。因此它们是 RuntimeException。如果您从 Spring 支持的实现中得到这些异常,我宁愿专注于解决问题。

关于java - Hibernate数据访问是否会抛出类似于Spring DeadlockLoserDataAccessException或其他TransientDataAccessException的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650285/

相关文章:

java - Jersey2 客户端抛出 javax.ws.rs.NotFoundException

java - 如何为多个身份验证提供者提供 spring security 的 java 配置

java - 同步 REST 端点以等待具有相同参数的 2 个调用

java - 如何从静态主方法依赖注入(inject)运行时参数

java - Slick2D 矩形碰撞检测

java - Java 类加载器的目的是什么?

java - 如何在单击、右键单击或拖动 3 个 JButton 中的任何一个时显示 JPopupMenu?

java - 缓存不适用于 Spring 3.0、Hibernate 3.6 和 EhCache 2.6.6

java - boolean 字段 Hibernate QueryException : could not resolve property

java - Hibernate、Spring 和 HSQL : Table not Found Exception