我有多台机器运行一项服务,该服务使用 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 时更新?