我有一个要求,如果找到一个新对象,我将其唯一 id 添加到继承该类的所有父类中。例如,如果 C:B 和 B:A(C 扩展 B 和 B 扩展 A),那么如果为 C 找到一个新对象,由于继承,该对象也是 B 和 A 类型,因此该对象进入包含其所有子实例的 A 和 B(子)列。因此,我想将它作为一个数组。为此,我正在读取 A 和 B 行并获取子列,将其反序列化为数组并将其放回 db。现在这肯定有锁定问题。例如,如果同时发现 D:C 或 D:B 的实例,则它们都将读取相同的副本,最后一次写入将赢得擦除先前写入的实例。
有没有办法通过在我的事务(在本例中为读取-->更新数组-->写入)完成之前不允许其他人读取它来消除此问题。
有没有推荐的方法来解决这个问题。