我们正在使用Hibernate 3.6.0。我们要求从表中检索下一个可用记录。我们如何控制多个并发用户检索相同记录。 我们需要读取下一个可用记录并更新列上的状态(锁类型)以避免下一个用户检索相同的记录。我们在表格上添加了Version列(乐观锁定),但似乎控制了更新。
Hibernate实现这一目标的最佳解决方案是什么?
提前致谢。 Venkat
答案 0 :(得分:1)
您是否尝试锁定相关记录? Hibernate支持悲观锁定(SELECT FOR UPDATE
),查看documentation。
您也可以尝试乐观锁定,这取决于您期望的并发级别。
答案 1 :(得分:0)
您可以添加一个标记说read(1 = true / 0 = false)并在检索对象时使用此标志,如 -
where read=0
选择后,您可以更新读取标志以限制另一个用户读取此记录。如果你愿意 - 你可以使用类似读取标志的版本标志,因为你在select版本之后更新实体会增加,并且可以用来区分读/未读记录。
让我知道这是否有帮助,或者我完全错过了你的问题。