gpt4 book ai didi

java - 为什么 spring Data REST 在序列化实体时忽略 @javax.persistence.Version 字段?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:04 24 4
gpt4 key购买 nike

我查看了代码并注意到 org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module.$AssociationOmittingSerializerModifier.updateBuilder 只是跳过了版本属性。

对于项目资源,版本字段在 ETag header 中可用。但是对于集合资源,我们需要项目的版本 ID 以在更新项目时遵守乐观锁定。

我们如何获取集合资源上每个项目的版本 ID?我们是否有任何配置来启用此功能?

谢谢你的帮助

最佳答案

当返回集合资源并且您想更新集合中的单个项目时,获取版本特别方便。

我在将返回版本的实体类中添加了一个替代命名“getter”:

@Version
private long version;

public long getCurrentVersion()
{
return version;
}

这会导致序列化程序在返回的 JSON 中创建一个 currentVersion 键,然后我将其值作为 If-Match header 的值传递。

关于java - 为什么 spring Data REST 在序列化实体时忽略 @javax.persistence.Version 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647914/

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