【发布时间】:2021-02-21 13:18:00
【问题描述】:
我有以下情况,其中attachDirty saveOrUpdate() 总是在突发调用事务注释方法时尝试持久化实体。
有没有办法避免这种违反主键约束的异常?我认为如果实体尚未创建,saveOrUpdate() 将持续存在,否则更新它。
我使用 ..orUpdate() 而不是 persist() 作为处理这些突发的方法。
实际上没有数据损坏。因为第一个saveOrUpdate() 确实根据需要为每个实体保存了一条记录。由于违反主键约束,其他持久化被数据库拒绝。
我研究了乐观和悲观锁定。我了解到这些工作是在获取现有记录后进行的。这里的实体是新的,而不是现有的。
如何以更好的方式解决这个问题?
【问题讨论】:
标签: spring spring-boot hibernate concurrency