我一直在使用Spring-Data开发RESTful Web服务。几天前,一个特殊的Spring-Data JPA REST框架发布了。
现在我注意到这个框架可以使用@Version。这个版本是自动生成的还是需要手动生成呢?
另外,我能否只使用@Version?(这样就不需要对我的现有存储库/域等进行任何更改)
最后,我需要进行额外的配置才能使用@Version吗?
我一直在使用Spring-Data开发RESTful Web服务。几天前,一个特殊的Spring-Data JPA REST框架发布了。
现在我注意到这个框架可以使用@Version。这个版本是自动生成的还是需要手动生成呢?
另外,我能否只使用@Version?(这样就不需要对我的现有存储库/域等进行任何更改)
最后,我需要进行额外的配置才能使用@Version吗?
我发布这个问题已经有一段时间了,但我已经想出了解决方法。我将解释一下我的做法,希望对其他人有所帮助。
注释@Version
是一个javax.persistence接口,而不是我之前提到的spring-data rest jpa框架。
如果你想使用@Version,你需要在你的领域对象中创建一个版本字段,如下所示:
@Version
@Column(name = "VERSION")
private long version;
{ <-- School entity -->
"id": 1,
"version": 0,
"name": "De regenboog",
"street": "Plantaanstraat",
"number": "2",
"zipCode": "1234AS",
"city": "Amsterdam"
}
{ <-- School entity -->
"id": 1,
"version": 0,
"name": "Stackoverflow",
"street": "Plantaanstraat",
"number": "2",
"zipCode": "1234AS",
"city": "Amsterdam"
}
update .... where id = 1 and version = 0
。现在,如果该行被更新了,那么就意味着你提供了正确的版本,并且在你请求信息、更改信息并将其发送回来的时间内,没有其他人更改了这个特定的信息。很好吧?请确保导入的是javax.persistence.Version而不是spring的版本。