gpt4 book ai didi

java - Spring Data REST,如何处理列表中的@Version 属性

转载 作者:行者123 更新时间:2023-12-02 04:33:50 26 4
gpt4 key购买 nike

我正在使用 Spring Boot 1.5.6 和 Spring Data REST。我知道这个讨论:With Spring Data REST, why is the @Version property becoming an ETag and not included in the representation?

很清楚为什么 SDR 将 @Version 属性转换为 Etag....但是这个非常常见的情况呢:我有一个实体列表(我使用 GET 获取数据)并且我想对其中之一进行逻辑删除。因此,我将对该特定实体执行 PATCH。为了执行 PATCH,我需要设置 If-None-Match header ,因此我需要知道版本。

在这种情况下,我使用 GET 获取了我的列表,但是要制作对象的 PATCH 只是为了更改 boolean 属性,我必须获取整个object 只是为了获取版本。方便吗?有没有更好的方法?

最佳答案

答案是肯定的。我相信 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"

关于java - Spring Data REST,如何处理列表中的@Version 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45882182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com