Java Spring-管理restcontroller之间的事务

Java Spring-管理restcontroller之间的事务,java,spring,transactions,spring-transactions,Java,Spring,Transactions,Spring Transactions,简而言之:我将数据推送到前端修改,然后提交。所有这些都应该通过单个事务进行管理 详细介绍:我目前正在开发一个spring+angular应用程序,其中数据一致性非常重要。我需要通过某种事务管理来确保数据的一致性 由于大多数restful web应用程序的数据由前端检索,并通过rest控制器进行修改和推送到后端。就在这里,我需要确保任何其他客户机在我拉取数据后没有修改相同的数据 Afaik spring只在后端管理事务(我可能错了),但这里的角度是事务的阴暗面 我需要弄清楚什么:在java(特别是

简而言之:我将数据推送到前端修改,然后提交。所有这些都应该通过单个事务进行管理

详细介绍:我目前正在开发一个spring+angular应用程序,其中数据一致性非常重要。我需要通过某种事务管理来确保数据的一致性

由于大多数restful web应用程序的数据由前端检索,并通过rest控制器进行修改和推送到后端。就在这里,我需要确保任何其他客户机在我拉取数据后没有修改相同的数据

Afaik spring只在后端管理事务(我可能错了),但这里的角度是事务的阴暗面

我需要弄清楚什么:在java(特别是在spring)世界中,这个问题是如何解决的

到目前为止我所发现的: 用于并发控制的Hibernate版本控制数据:

正如您所解释的,您的前端(角度)提取信息,此时您的前端将失去对记录或数据库的控制,因此您无法避免信息被其他人修改。由于前端组件和后端之间没有真正的链接,所以您应该考虑在数据库中包含一个用于修改修改的列,比如“锁定”状态,但这不是一个简单的解决方案,它还带来了另一个问题,例如:如果有人想要编辑一条记录,但突然离开或退出了前端应用程序,“锁定”记录可能永远处于该状态,因此需要实施其他注意事项和控制。

对于带锁的数据,解决方案可能是对数据进行版本控制。我在Question上粘贴了一个博客链接,因为你已经发现乐观锁是一个众所周知的解决方案,适用于你提到的确切情况。添加版本是它的hibernate实现。