1

实体 Parent 有一个 Item 对象的集合。

每当我尝试运行包含针对索引大于 9 的集合项的操作的 json-patch+json 请求时,Spring 都会引发以下异常:

原因:org.springframework.data.mapping.PropertyReferenceException:找不到类型项目的属性 10!遍历路径:Parent.collection。

URL 是"/Parent/1" 请求正文:

[
    {
      "op":"replace",
      "path":"/collection/10/property",
      "value":"100"
    }
]

索引小于 10 的完全相同的请求可以正常工作:

[
    {
      "op":"replace",
      "path":"/collection/9/property",
      "value":"100"
    }
]

它是弹簧数据休息错误吗?

4

1 回答 1

0

Spring Data Rest 项目中的一个问题最近已在以下版本中修复(2018 年 8 月 8 日):

org.springframework.data:spring-data-rest-webmvc:jar:3.1.0.RC2 org.springframework.data:spring-data-rest-webmvc:jar:2.6.15.RELEASE org.springframework.data:spring-数据-rest-webmvc:jar:3.0.10.RELEASE

如果您使用 Spring Boot 2.1.x,您可以更新您的 spring-data-rest-webmvc 工件版本。最简单的方法是在 pom 中将 spring-data-releasetrain.version 属性设置为 Lovelace-RC2:

<spring-data-releasetrain.version>Lovelace-RC2</spring-data-releasetrain.version>

如果您使用 Spring Boot 2.0.x:

<spring-data-releasetrain.version>Kay-SR10</spring-data-releasetrain.version>

如果您使用 Spring Boot 1.5.x:

<spring-data-releasetrain.version>Ingalls-SR15</spring-data-releasetrain.version>

作为替代方案,您可以将 Spring Boot 版本本身更新为已使用相应 Spring Data Rest 版本的版本:

org.springframework.boot:spring-boot-starter-parent:2.1.0.M2 (Lovelace-RC2)

org.springframework.boot:spring-boot-starter-parent:2.0.5.RELEASE (Kay-SR10)

org.springframework.boot:spring-boot-starter-parent:1.5.16.RELEASE (Ingalls-SR15)

于 2018-08-23T18:14:09.077 回答