【发布时间】:2010-09-24 04:53:32
【问题描述】:
设置如下:实体类包含其他延迟加载的实体的集合。诀窍是,我需要执行一些与数据相关的工作(例如,我想用集合的元素计算某些校验和)。
这里的诀窍是我想不惜一切代价避免竞争条件,例如:“有人在我进行数据计算时更新了实体”。在正常情况下,我只会声明 getter/setter 同步并且会很高兴。但据我了解,如果另一个线程决定从数据库更新实体状态,而我正在计算校验和,它将完全忽略“同步”方法(它将直接访问该字段)。
我可能错了。所以问题是:在初始校验和计算时,有没有办法“锁定”对实体部分或整个实体本身的访问?
提前致谢! 附:如果您需要代码 sn-p 来说明问题 - 请告诉我。到目前为止,我认为这个问题很清楚。
【问题讨论】:
标签: orm jpa jakarta-ee pessimistic-locking