Hibernate - 如何限制多个用户对记录的并发读取?

时间:2011-04-01 21:18:45

标签: hibernate locking

我们正在使用Hibernate 3.6.0。我们要求从表中检索下一个可用记录。我们如何控制多个并发用户检索相同记录。   我们需要读取下一个可用记录并更新列上的状态(锁类型)以避免下一个用户检索相同的记录。我们在表格上添加了Version列(乐观锁定),但似乎控制了更新。

Hibernate实现这一目标的最佳解决方案是什么?

提前致谢。 Venkat

2 个答案:

答案 0 :(得分:1)

您是否尝试锁定相关记录? Hibernate支持悲观锁定(SELECT FOR UPDATE),查看documentation

您也可以尝试乐观锁定,这取决于您期望的并发级别。

答案 1 :(得分:0)

您可以添加一个标记说read(1 = true / 0 = false)并在检索对象时使用此标志,如 -

where read=0

选择后,您可以更新读取标志以限制另一个用户读取此记录。如果你愿意 - 你可以使用类似读取标志的版本标志,因为你在select版本之后更新实体会增加,并且可以用来区分读/未读记录。

让我知道这是否有帮助,或者我完全错过了你的问题。