Java 锁定选择以进行更新,但不要';t锁定常规选择

Java 锁定选择以进行更新,但不要';t锁定常规选择,java,database,hibernate,locking,Java,Database,Hibernate,Locking,我正在实施一个系统,在这个系统中,我区分SELECT…和SELECT。。。用于更新 常规的SELECT…用于读取允许处于“不正确”状态的实体(不正确=可能在稍后更新) 选择。。。FOR UPDATE始终用于读取对象,目标是对其进行编辑,因此它应该返回对象的正确状态 现在我试着做以下几点: 每当通过选择按钮读取对象时。。。对于UPDATE语句,锁定其他选择。。。用于对同一对象进行更新查询。但是,常规的SELECT…仍然可以工作 有没有办法只使用预定义的锁来实现这一点? 我研究了数据库隔离级别,但我

我正在实施一个系统,在这个系统中,我区分
SELECT…
SELECT。。。用于更新

常规的
SELECT…
用于读取允许处于“不正确”状态的实体(不正确=可能在稍后更新)

选择。。。FOR UPDATE
始终用于读取对象,目标是对其进行编辑,因此它应该返回对象的正确状态

现在我试着做以下几点: 每当通过
选择按钮读取对象时。。。对于UPDATE
语句,锁定其他
选择。。。用于对同一对象进行更新
查询。但是,常规的
SELECT…
仍然可以工作

有没有办法只使用预定义的锁来实现这一点? 我研究了数据库隔离级别,但我不认为它们是我问题的一部分


我正在使用java、hibernate和sql数据库。

选择更新不会锁定MySQL。它在Oracle、Postgres和MS SQL中起作用。

您不需要做任何事情吗?更新的
将锁定必要的行,直到您提交或回滚。无需在Java中执行显式锁定。另外,当你说sql数据库时,你是指sql Server吗?数据库产品:mysql for update将锁定行,但它也将锁定它们以进行常规选择,这不是我的意图。对的