我的场景:
我有一个父子实体。我想和它的父母一起阅读一个孩子,更新它并保存回来。我希望整个行动都有一把锁。
当前执行流程:
- 获取父母和孩子实体
- 将实体转换为域对象(遵循DDD设计(
- 更新父级和子级
- 将CHILD域转换为CHILD实体
- 保存儿童实体。(父对象将自动保存为子对象与父对象具有ManyToOne关系(
要get父实体,调用ParentRepository中的findbyId方法;要getchild方法,调用ChildrenRepository的findbyId方法。
要保存子级和父级,调用childrenRepository中的saveAll方法。(父级通过ManyToOne关系自动保存(
我想要一个Persistent_write锁,它应该覆盖从读到写。但我不确定要锁定哪个对象或锁定哪个存储库方法。
有人能帮我吗?如果我误解了什么,请详细说明。
我在父级的repo.findby方法中声明了悲观主义_写入锁。因为我只希望父行被锁定并工作。
代码:
@Lock(LockModeType.PESSIMISTIC_WRITE)
List<...> findWithLockById(...);