gpt4 book ai didi

sorting - Spring Data Rest中关联端点中的排序功能

转载 作者:行者123 更新时间:2023-12-04 13:46:50 25 4
gpt4 key购买 nike

我有以下两个资源,以及它们的关联;

@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 进行排序端点,但太丑了,考虑到已经有一个自动生成的端点。

最佳答案

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

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

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

更详细的信息可以从这里找到:

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

干杯!

关于sorting - Spring Data Rest中关联端点中的排序功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44879248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com