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