Hibernate 隔离级别与数据库隔离级别

Hibernate isolation levels vs database isolation levels

如果使用Hibernate 作为ORM 工具,DB2 作为Hibernate 中的数据库,我们可以定义Isolation levels,DB2 有自己的隔离级别。通过在休眠中定义隔离级别与使用数据库隔离级别相比,我们获得的好处是什么?

它们是同一回事。 Hibernate 在它用于连接到 DB2 的 JDBC 个连接上设置隔离级别,以便 DB2 对这些连接使用该隔离级别。

因此,事务隔离级别由数据库处理。

Hibernate 充当跨数据库的抽象层;如果您想为多个支持的数据库指定相同的隔离级别(在数据库支持该隔离级别的范围内;例如,Oracle 不会实现未提交的读取),则最好使用 Hibernate 的隔离级别。

Hibernate 可以通过附加 WITH 子句为单个查询指定隔离级别。这将优先于 DB2 的默认隔离级别。因此,您可以为数据库选择一个隔离级别,然后允许调整由 Hibernate 生成的各个查询的级别。