私たちは、Hibernate 3.2.5とともにPostgreSQL 9.1.0を使用しています。Postgres 9.0での休止分離レベル
最新のJDBCドライバJDBC4 Postgresql Driver, Version 9.1-901
をダウンロードしました。
私は休止状態の分離プロパティを設定しました。
2=READ_COMMITTED
を意味しますが、データベースにアクセスしようとすると、それは私にエラーを与える
<property name="connection.isolation">2</property>
。
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 3からHibernate 4へのアプリケーションのアップグレードの一環として、この同じ問題を追いかけています.Hibernateを初期化し、ユーザー定義型を収集するためにPostgresに対してクエリを実行することと関係しているようです。 –
接続プールが設定されていれば、問題は見えません。私の状況では、テストにのみ影響し、トランザクションの分離を指定しないようにテスト構成を変更することができました。 –