我有多台机器正在运行使用Hibernate从数据库更新和读取值的服务。
每当我需要在服务中更新数据库值时,我都会使用升级nowait锁,如果我无法获得锁,我只是稍后重试。
void lock(Job job) {
sessionFactory.session.lock(job, LockMode.UPGRADE_NOWAIT);
}
我的服务中有一个地方我必须在那里更新数据库值,我无法重试。我想我只是在那些地方使用普通的升级锁,而且它可以等待它需要更新的值。
void waitForLock(Job job) {
sessionFactory.session.lock(job, LockMode.UPGRADE);
}
但现在我看到这个错误有时会弹出......
org.hibernate.dialect.HSQLDialect - HSQLDB supports only READ_UNCOMMITTED isolation
有没有办法保证第一次使用Hibernate更新此值?
答案 0 :(得分:1)
您使用的旧版HSQLDB不支持事务隔离。使用最新版本(2.2.8或更高版本)。