我有一个使用Spring Boot 1.5.1和Spring Data Rest的数据库服务。我将实体存储在MySQL数据库中,并使用Spring的PagingAndSortingRepository通过REST访问它们。我找到了这篇文章,其中指出支持按嵌套参数进行排序,但我找不到按嵌套字段排序的方法。
我有以下类:
@Entity(name = "Person")
@Table(name = "PERSON")
public class Person {
@ManyToOne
protected Address address;
@ManyToOne(targetEntity = Name.class, cascade = {
CascadeType.ALL
})
@JoinColumn(name = "NAME_PERSON_ID")
protected Name name;
@Id
protected Long id;
// Setter, getters, etc.
}
@Entity(name = "Name")
@Table(name = "NAME")
public class Name{
protected String firstName;
protected String lastName;
@Id
protected Long id;
// Setter, getters, etc.
}
例如,当使用该方法时:Page<Person> findByAddress_Id(@Param("id") String id, Pageable pageable);
调用URI http://localhost:8080/people/search/findByAddress_Id?id=1&sort=name_lastName,desc 时,Spring完全忽略了排序参数。
参数 sort=name.lastName 和 sort=nameLastName 也都不起作用。
我是不是在错误地构建REST请求,或者缺少某些配置?
谢谢!
<spring.data.jpa.version>1.10.10.RELEASE</spring.data.jpa.version><spring.data.rest.webmvc.version>2.5.10.RELEASE</spring.data.rest.webmvc.version>
后和我一起工作。 - Khaled Lelav3.0.0.M3
,报告说已经修复了,但是在我的机器上运行不起来。 - Khaled Lela@JsonProperty(access = READ_ONLY)
。删除此注释可导致该嵌套属性的正确排序行为。 - jensfischerhh