【发布时间】:2017-07-03 06:42:32
【问题描述】:
我有以下两个资源,以及它们的关联;
@Table(name = "Item")
@Data
@Entity
public class Item {
@ManyToOne
@JoinColumn(name = "fk_wrapper")
private Wrapper wrapper;
@Id
@GeneratedValue
private String id;
private Integer someValue;
}
和;
@Table(name = "Wrapper")
@Data
@Entity
public class Wrapper {
@Id
@GeneratedValue
private String id;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fk_wrapper")
private List<Item> items;
private String someField;
}
然后,首先,我创建一个Wrapper;
POST http://localhost:8080/wrappers/
{
"someField": "asd"
}
http://localhost:8080/wrappers/1创建,然后我创建两个Item,链接到这个Wrapper;
POST http://localhost:8080/items/
{
"someValue": "5",
"wrapper": "http://localhost:8080/wrappers/1"
}
&
POST http://localhost:8080/items/
{
"someValue": "7",
"wrapper": "http://localhost:8080/wrappers/1"
}
毕竟,当我调用端点http://localhost:8080/wrappers/1/items 时,正如预期的那样,我得到了这两个项目的列表,但问题是,我似乎在这个端点上没有排序功能。我似乎能够在http://localhost:8080/items 端点中进行排序,但是在关联获取时,似乎没有排序功能。这是故意缺少排序,还是我缺少一些配置?
附:例如,当我创建自定义搜索方法时;
@RepositoryRestResource
public interface ItemRepository extends JpaRepository<Item, String> {
List<Item> findByWrapper_Id(@Param("id") String id, Sort sort);
}
然后我可以使用http://localhost:8080/items/search/findByWrapper_Id端点排序,但是太丑了imo,考虑到已经有一个自动生成的端点。
【问题讨论】:
标签: sorting spring-data spring-data-jpa spring-data-rest