【问题标题】:Spring JPA Multithreading delete contentionSpring JPA 多线程删除争用
【发布时间】:2022-09-27 21:15:03
【问题描述】:

我有一个 Spring JPA 多线程程序,其中多个线程保存到其中一个表中。我想知道在以下情况下会发生什么:

2 个线程拾取相同的对象进行处理,并将save 拾取到表中。数据已成功保存。 争用解决机制识别其中一个数据是重复的并发出delete 请求。这个删除是否也会从第一个线程的上下文中删除对象?

(当本应通过 JPA 的 save 方法成功返回的对象突然记录为 null 时,我们会出现间歇性问题。)

    标签: java postgresql multithreading spring-data-jpa


    【解决方案1】:

    为避免这种情况,您可以尝试使用saveAndFlush 而不是save。这可能会解决您意外删除的问题。

    参考:Difference between save and saveAndFlush in Spring data jpa

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 2019-10-19
      • 2020-09-12
      • 2011-12-11
      相关资源
      最近更新 更多