java 修改子实体和父实体时是否可以获取锁?

wyyhbhjk  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(189)

我的方案:

我有一个父实体和子实体。我希望读取子沿着父实体,更新子实体并将其保存回来。我希望整个操作在锁定的情况下进行。

当前执行流:

1.获取父实体和子实体
1.将实体转换为域对象(遵循DDD设计)
1.更新父项和子项
1.将CHILD域转换为CHILD实体
1.保存CHILD实体。(当子代与父代对象具有多对一关系时,父代将自动保存)
获取父实体,调用ParentRepositoy中的findbyId方法;要获取子方法,调用ChildrenRepository中的FindById方法。
保存子项和父项,请调用childrenRepository中的saveAll方法。(父项通过ManyToOne关系自动保存)
这里我需要一个Persistent_write锁,它应该覆盖从读到写的过程,但是我不确定锁定哪个对象或者锁定哪个存储库方法。
有谁能帮我一个忙吗?如果我误解了什么,请详细说明。

hyrbngr7

hyrbngr71#

我在父行的repo.findby方法中声明了悲观_write锁,因为我只希望父行被锁定并工作。
编码:

@Lock(LockModeType.PESSIMISTIC_WRITE)
    List<...> findWithLockById(...);

相关问题