当前位置: 首页 > 知识库问答 >
问题:

Spring Data Rest可分页子集合

薛博赡
2023-03-14
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="user")
private Set<Changeset> changesets = new HashSet<Changeset>();
@Repository
@RestResource(path = "users", rel = "users")
public interface UserRepository extends JpaRepository<User, Long>{ }

和ChangeSetRepository:

@Repository
@RestResource(path = "changesets", rel = "changesets")
public interface ChangesetRepository extends JpaRepository<Changeset, Long> { }

http://localhost:8080/changesets/http://localhost:8080/users/上调用GET会产生分页响应。

如果我在http://localhost:8080/users/1/changesets上调用GET,那么我将在单个数组中获得所有结果,并且不会发生分页。

@RestResource(path = "byUser", rel = "byUser")
public Page<Changeset> findByUser(@Param("id") User user, Pageable p);

我保留了双向关系,但也能够通过在变更集上使用@restresource(exported=false)对用户隐藏到变更集的链接。

侧注:将关系设置为exported=false似乎隐藏了链接,但实际上并没有删除映射。/users/1/changesets没有广告,但它仍然有效。

共有1个答案

司马自明
2023-03-14

我不认为特别提款权直接支持你描述的方法。

不过,你可能会采取另一种方法。不要在PersonChangeSet之间使用双向关系,而应使其从ChangeSet单向到Person。然后在ChangeSetRepository中包含如下方法:

@RestResource(path = "find-by-person")
Page<Changeset> findByPerson(@Param("person") Person person, Pageable pageable);

(我只是凭记忆这么做的,所以可能需要稍微调整。)

 类似资料:
  • 和ChangeSetRepository: 在或上调用GET会产生分页响应。 如果我在上调用GET,那么我将在单个数组中获得所有结果,并且不会发生分页。 我保留了双向关系,但也能够通过在变更集上使用对用户隐藏到变更集的链接。 侧注:将关系设置为exported=false似乎隐藏了链接,但实际上并没有删除映射。/users/1/changesets没有广告,但它仍然有效。

  • 我尝试使用MockMVC和TestRestTemboard。在这两种情况下,返回的响应都是404,但是APIendpoint在集成测试之外工作(当我自己运行Spring应用时)。 有没有人有一个可以工作的示例应用程序,它使用SpringDataREST对生成的控制器进行了工作集成测试? 我还可以编写针对自己控制器的常规集成测试(非SDR类型) 测试代码: 回购: 好的,我发现了问题,但我不知道答案

  • 我遇到了一个问题,很难找到好的示例或此类问题的参考。我正在尝试将分页添加到我已经存在的NamedNativeQuery。据我所知,您需要提供另一个NamedNativeQuery用于在名称末尾添加. count的分页。 我当前的查询如下所示: 这是我尝试的分页查询: 我的来电者是这样的: 我对Spring、JPA和Hibernate仍然很陌生,但我仅限于以这种方式或类似的方式实现它。我可以使用Pa

  • 我试图获取当前类包装器的可变参数子集,以实例化一个新的变量 目前我有: 我想实现以下目标: 您可以假设每个类型在变量类中只存在一次,并且我将始终请求当前变量类型的子集。我不知道这在C11中是否可行?谢谢你的帮助。

  • 问题内容: 我想知道是否有更好的方法从服务器加载大型Json数据集。 我正在使用jqgrid作为loadonce:true。我需要一次加载大约1500条记录,而且我不使用分页选项。有没有更好的方法来实现这一目标?先感谢您。 这是我的网格代码- 问题答案: 在此演示的示例中,您可以看到在使用的情况下为网格加载1500行的时间。 您的示例最大的性能问题在函数内部。如果确实需要在网格上进行一些修改,则应

  • 我需要获取所有可分页的文档,但我遇到了这个错误 com.fasterxml.jackson.databind.JsonMappingException:(java.lang.NullPointerException)(通过引用链:org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl["face