【发布时间】:2016-01-19 14:18:01
【问题描述】:
我有一项使用 Spring Boot 1.2.5 和 Spring Data Releastrain Fowler-SR2 运行良好的服务。升级到 Spring Data Releastetrain Gosling 时,我的 API 中断,我无法弄清楚原因。
如果我的Repository 界面上有以下内容:
public Page<Person> findByPerson(@Param("person")Person person, Pageable pagable)
我调用端点:
/service/people/search/findByPerson?person=100
SDR 会正确地将 100 的 id 转换为 Person 对象(使用数字作为 PK id)并返回该对象。如果我将其称为:
/service/people/search/findByPerson?person=/service/people/100
升级到 Gosling releasetrain 时,这一切都会中断。现在只有第二个版本有效,任何使用数字 id 进行调用的尝试都会失败,并返回 org.springframework.data.repository.support.QueryMethodParameterConversionException 异常。
我在 Gosling 发布信息中找不到有关此更改的任何参考,但我确信此更改与从 Fowler 到 Gosling 的转换有关。
任何人都知道这是为什么,以及如何恢复功能。这个 API 用在很多地方,必须更新所有客户端是一项艰巨的任务。我想利用 Gosling 发行版中的安全修复和其他改进,而不是卡在 Fowler 上,但如果我无法恢复此功能,我就无法这样做,至少在一段时间内允许其他客户端更新他们的调用方法.
【问题讨论】:
-
这只是推动 SDR 更加 RESTful 的一部分吗?你在其他地方得到答案了吗?
标签: java spring-data spring-data-rest