1

Hibernate を使用してデータベースから値を更新および読み取るサービスを実行している複数のマシンがあります。

サービスで DB 値を更新する必要があるときはいつでも、アップグレード待機ロックを使用します。ロックを取得できない場合は、後で再試行します。

void lock(Job job) {
    sessionFactory.session.lock(job, LockMode.UPGRADE_NOWAIT);
}

私のサービスには、DB 値を更新しなければならない場所が 1 つありますが、再試行できません。私は、それらのスポットで通常のアップグレード ロックを使用するだけで、値を更新するのに必要なだけ待つことができると考えました。

void waitForLock(Job job) {
    sessionFactory.session.lock(job, LockMode.UPGRADE);
}

しかし、今ではこのエラーが時々表示されます...

org.hibernate.dialect.HSQLDialect - HSQLDB supports only READ_UNCOMMITTED isolation

Hibernate を使用して初めてこの値が更新されることを保証する方法はありますか?

4

1 に答える 1

1

トランザクション分離をサポートしていない古いバージョンの HSQLDB を使用しています。最新バージョン (2.2.8 以降) を使用してください。

于 2012-06-01T09:14:10.377 に答える