ID转换从Spring Data Rest Fowler更改为Gosling

时间:2016-01-19 14:18:01

标签: java spring-data spring-data-rest

我使用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)

我用端点调用端点:

/服务/人/搜索/ findByPerson?人= 100

SDR会将id的100正确转换为Person对象(使用数字作为PK id)并返回该对象。如果我将其称为:

,它也会起作用
/service/people/search/findByPerson?person=/service/people/100

升级到Gosling发布系列时,这一切都会中断。现在只有第二个版本可以工作,并且任何使用数字ID进行调用的尝试都会失败并返回org.springframework.data.repository.support.QueryMethodParameterConversionException个异常。

我找不到Gosling发布信息中对此更改的任何引用,但我确信这些更改与从Fowler到Gosling有关。

任何人都知道为什么会这样,以及如何恢复功能。此API在很多地方使用,并且必须更新所有客户端是一项艰巨的任务。我想利用Gosling releastrain中的安全修复程序和其他改进,而不是卡在Fowler上,但如果我无法恢复此功能,我不能这样做,至少在一段时间内不允许其他客户更新其调用方法

1 个答案:

答案 0 :(得分:0)

是的,我得到了一个答案,而且它是#34;旧的行为是一个错误,现在在Gosling发生的事情是它应该如何运作。您必须更改您的应用以符合行为&#34;。

因此,我必须对我们的应用和客户做出相当大的改变才能解决这个问题。