服务器上的负载增加时删除记录时出错?

时间:2018-09-25 06:57:09

标签: java spring spring-boot spring-data-jpa

我有一个表摘要,该表摘要具有列状态。该表已包含状态为1的数据。首先,我将新记录插入状态为0的表中。 我正在删除状态为1的旧记录,并最终更新状态为0到1的记录。 当服务器负载减少但负载增加时,旧记录(状态1)不会被删除,新记录(状态0)将被插入并更新为1。

跟随是潮流-

1.saveAndFlush状态为0的新记录。

2.deleteRecords();

3.updateRecords();

要删除的查询是

@Transactional
@Modifying
@Query(value = "DELETE FROM TableDataSummary  t where t.status=1")
public void deleteSummary();

并进行更新-

@Transactional
@Modifying
@Query(value = "Update TableDataSummary t  set t.status=1")
public   void updateSummary();

这是随机发生的,如何解决此问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

我最近遇到过类似的事情。我必须提供CRUD功能来处理数据库中的数据。我还使用了JPA,并且对于更新功能,我没有直接在存储库中使用更新查询。
如果可能对您有帮助,我将分享我的想法:
1. saveAndFlush状态为0的新记录。
2.deleteRecords();
3.从Controller执行findAll()以获取所有数据(通常,您只应获取status = 0的数据,因为您刚刚删除了status = 1的其他数据。)
4.创建一个循环,以访问“ findAll()”结果的每个数据
5.在循环中,必须将“状态”设置为“ 1”,并为每个对象调用“ save()”。

而“ save()”将自动更新数据

希望对您有帮助,否则我可能会误会您的意思。