有一张 table
columns: id(pk), name, attribute
unique constraint on (name, attribute).
如果记录不存在,就会有一堆线程插入表中。为此使用了 Spring Data,它完成了一项可能需要一些时间的事务。记录可以是相同的,意思是相同的(名称,属性),同时在几个线程中。有时会发生竞争情况,线程 A 尝试提交新记录,而线程 B 在线程 A 读取它之前提交了相同的记录。
在这种情况下是否有任何方法可以进行更新插入?
也许,还有其他解决此问题的建议,我们很乐意听到。
最佳答案
要么以 JPA 方式进行:
尝试找到实体,如果不存在,保存它。 如果存在,则无事可做,但您当然可以通过操作找到的实体来更新它。
或者使用 SQL 并编写许多数据库方言支持的实际更新插入/合并语句。
关于java - 在 Spring Data 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58134086/