带@version注释的Hibernate乐观并发控制
我对冬眠比较陌生。我试图通过注释一个时间戳字段来使用乐观并发带@version注释的Hibernate乐观并发控制,hibernate,Hibernate,我对冬眠比较陌生。我试图通过注释一个时间戳字段来使用乐观并发 @Entity public class Request implements java.io.Serializable { 然后,我希望下面的更新代码在并发事务更新实体时抛出StaleObjectStateException request.setStatus(status); request.setLastUpdateTimestamp(currenttimestamp); s.save(request); 我在调试器中运行
@Entity
public class Request implements java.io.Serializable {
然后,我希望下面的更新代码在并发事务更新实体时抛出StaleObjectStateException
request.setStatus(status);
request.setLastUpdateTimestamp(currenttimestamp);
s.save(request);
我在调试器中运行代码并暂停,以确保一个线程先执行此代码,然后恢复另一个线程。我可以看到结果SQL,它已经
update REQUEST ... where ID=? and LAST_UPDATE_TIMESTAMP=?
所以我的理解是更新应该失败,应该抛出StaleObjectStateException,但它没有发生。我错过了什么
提前感谢您的帮助 嘿,你有相关的答案吗?我也在拼命地寻找它
update REQUEST ... where ID=? and LAST_UPDATE_TIMESTAMP=?