我有一个使用Spring Boot 1.5.1和Spring Data Rest的数据库服务.我将我的实体存储在MySQL数据库中,并使用Spring的PagingAndSortingRepository通过REST访问它们.我发现this声明支持按嵌套参数排序,但我找不到按嵌套字段排序的方法.
我有这些课程:
@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,etc.
}
例如,使用该方法时:
Pagearam("id") String id,Pageable pageable);
调用URI http://localhost:8080/people/search/findByAddress_Id?id=1&sort=name_lastName,desc时,Spring完全忽略sort参数.
参数sort = name.lastName和sort = nameLastName也不起作用.
我是否构成了Rest请求错误,或者缺少某些配置?
谢谢!
最佳答案
我通过调试,看起来像Alan提到的问题.
我找到了可能有用的解决方法:
创建自己的控制器,注入您的仓库和可选的投影工厂(如果您需要投影).实现get方法以委托对您的存储库的调用
@RestController
@RequestMapping("/people")
public class PeopleController {
@Autowired
PersonRepository repository;
//@Autowired
//PagedResourcesAssembler
这适用于2.6.8.RELEASE;问题似乎在所有版本中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。