spring-data-jpa Spring JPA多线程删除争用

jq6vz3qz  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(140)

我有一个Spring JPA多线程程序,其中多个线程保存到一个表中。我想知道在以下场景中会发生什么:
2个线程选取相同的对象进行处理,并将save添加到表中。数据已成功保存。争用解决机制发现其中一个数据重复,并发出delete请求。此删除操作是否还会从第一个线程的上下文中删除该对象?
(We当通过JPA的save方法应该成功返回的对象突然被记录为null时,会出现间歇性问题。)

dgsult0t

dgsult0t1#

要避免这种情况,您可以尝试使用saveAndFlush而不是save。这可能会解决意外删除的问题。
参考:Difference between save and saveAndFlush in Spring data jpa

相关问题