首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring数据Rest中关联端点中的排序特性

问Spring数据Rest中关联端点中的排序特性
EN

Stack Overflow用户
提问于 2017-07-03 06:42:32
回答 1查看 563关注 0票数 4

我有以下两个资源,和他们的联系;

代码语言:javascript
复制
@Table(name = "Item")
@Data
@Entity
public class Item {

    @ManyToOne
    @JoinColumn(name = "fk_wrapper")
    private Wrapper wrapper;

    @Id
    @GeneratedValue
    private String id;

    private Integer someValue;
}

和;

代码语言:javascript
复制
@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;

代码语言:javascript
复制
POST http://localhost:8080/wrappers/
{
    "someField": "asd"
}

http://localhost:8080/wrappers/1创建,然后我创建两个Item,链接到这个Wrapper;

代码语言:javascript
复制
POST http://localhost:8080/items/
{
    "someValue": "5",
    "wrapper": "http://localhost:8080/wrappers/1"
}

&

代码语言:javascript
复制
POST http://localhost:8080/items/
{
    "someValue": "7",
    "wrapper": "http://localhost:8080/wrappers/1"
}

在所有这些之后,当我调用端点http://localhost:8080/wrappers/1/items时,我得到了这两个项的列表,就像预期的那样,但问题是,我似乎无法在这个端点上具有排序功能。我似乎能够在http://localhost:8080/items端点中进行排序,但在使用关联获取时,似乎没有排序功能。这种缺乏排序是有意的,还是我缺少一些配置?

例如,当我创建自定义搜索方法时;

代码语言:javascript
复制
@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端点中使用排序,但考虑到已经有一个自动生成的端点,海事组织太难看了。

EN

回答 1

Stack Overflow用户

发布于 2018-05-10 01:42:49

Spring数据Rest不支持对关联进行排序。

根据Spring团队的说法,您似乎已经找到了实现所需的最佳方法--创建一个获取所需数据的查询。这将确实支持分页和排序。

不支持它的原因与查询获取主资源的时间有关(在构建关联端点之前),以及关联端点直接使用加载的实体关联的事实,以及为了支持排序,无论如何都需要进行新的查询。

更详细的资料可在此查阅:

https://jira.spring.io/browse/DATAREST-725?focusedCommentId=122244&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-122244

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44879248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档