[英]Spring Data REST, how to handle @Version property in listings
我正在使用 Spring Boot 1.5.6 和 Spring Data REST。 我知道这个讨论: 使用 Spring Data REST,为什么 @Version 属性成为 ETag 而未包含在表示中?
很明显为什么 SDR 将 @Version 属性转换为 Etag ......但是这个非常常见的情况如何:我有一个实体列表(我使用GET
获取数据),我想对其中一个进行逻辑删除. 所以我会在那个特定的实体上做一个PATCH
。 为了做 PATCH,我需要设置If-None-Match
标头,因此我需要知道版本。
在这种情况下,所以我取出我的名单有GET
,反而使一个PATCH
物体的只是改变布尔属性我已经获取整个对象刚刚拿到的版本。 方便吗? 有没有更好的方法?
答案是肯定的。 我相信 Spring/REST 应该在实体主体中将它作为第一类属性返回,但 REST 混淆了两个不同的关注点:实体版本控制和 HTTP 消息传递。 解决方案是公开一个刚好保存对象版本的新“幻影”属性:
@Version
private int version; // the entity version, managed by JPA
public int getVersion() { return this.version; } // Spring suppresses this
public int getVisibleVersion() { return this.version; } // appears in entity JSON as "visibleVersion"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.