gpt4 book ai didi

Postgres 9.0 的 Hibernate 隔离级别

转载 作者:行者123 更新时间:2023-11-29 11:24:51 25 4
gpt4 key购买 nike

我们使用 Postgres 9.1.0 和 Hibernate 3.2.5。

我已经下载了最新的 JDBC 驱动程序 JDBC4 Postgresql 驱动程序,版本 9.1-901

我已经设置了 hibernate 隔离属性。

<property name="connection.isolation">2</property>

这意味着

2=READ_COMMITTED

但是在尝试访问数据库时它给我错误。

Caused by: org.postgresql.util.PSQLException: Cannot change transaction isolation level in the middle of a transaction.
at org.postgresql.jdbc2.AbstractJdbc2Connection.setTransactionIsolation(AbstractJdbc2Connection.java:821)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:103)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)

如果我删除隔离级别属性。它工作正常。任何帮助将不胜感激

最佳答案

查看错误消息:“无法在事务中间更改事务隔离级别”,Hibernate 似乎启动了一个事务(例如通过运行 SELECT)然后尝试更改隔离级别。

这似乎是 Hibernate 的 PostgreSQL 集成中的一个错误,因为它应该在打开连接后首先更改隔离级别,或者在更改隔离级别之前通过发出提交或回滚来结束已经启动的任何操作。

您唯一的选择(除了打开错误报告)是忽略隔离设置。由于 READ_COMMITTED 是 Postgres 的默认隔离级别,无论如何都不应该有所作为。

关于Postgres 9.0 的 Hibernate 隔离级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7417043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com