我有从数据库中读取记录的情况。如果一切正常,我将修改一些属性并提交事务。
但是在两个线程执行相同操作的情况下,它们将更新相同的记录。
如何在休眠状态下使用它?
答案 0 :(得分:3)
你可以使用乐观锁定:给实体一个版本并让它抛出一个异常,如果版本不相同则再试一次因为别的东西(其他线程,集群中的其他节点甚至是一些独立的sql脚本)烦恼更新版本)改变了同一个实体。 或者你可以使用悲观锁定:真正锁定数据库中的实体。
有关详细信息,请参阅hibernate文档中的Transactions and Concurrency章节。