JPA事务管理问题数据错误更新(ACID,隔离,READ COMMITTED)

时间:2017-08-30 13:01:58

标签: java angularjs spring jpa

我面临着非常奇怪的问题,根据我的知识,我无法确定问题是如何发生的。 在我的应用程序中,用户A在其余额中包含100,而A向用户B发送50(B需要点击接收以接收50的金额)。但在B收到之前,A拒绝了转让 并启动另一个转移到用户C,金额为10。

理想情况下,A应该有90个权利。

但是发生了什么,我看到服务器端的日志同时处理拒绝和转移请求。所以拒绝请求和转移请求从表中获得余额,即50。现在拒绝请求更新余额50 + 50并且表中的余额为100,但由于转移请求持有对象A并且它包含来自该对象的余额50转移到C,余额是40,更新。现在A在他的余额中有40个错误..

我使用的是Spring Boot,JPA,angularJS,

我如何解决这些问题。如何在JPA中应用ACID方法。刚才我在JAPConfig中更新了

props.put("hibernate.connection.isolation", String.valueOf(Connection.TRANSACTION_SERIALIZABLE));

以上配置将帮助我解决问题。

0 个答案:

没有答案