我有一個名爲User的@Entity。它擁有一套變更如下:Spring Data Rest Pageable子集合
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="user")
private Set<Changeset> changesets = new HashSet<Changeset>();
我有一個UserRepository:
@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> { }
調用get上http://localhost:8080/changesets/
或http://localhost:8080/users/
產生一個尋呼響應。
如果我調用get上http://localhost:8080/users/1/changesets
然後我得到一個單一陣列中的所有結果,並沒有分頁發生。
有沒有一種方法來指示春數據休息,我想通過其父用戶訪問時,返回的變更集合中分頁的方式?變更集將會快速增長,我寧願不在單個頁面中返回大量結果。
編輯:
正如威利·惠勒建議我加入這個我ChangesetRepository使其搜索:
@RestResource(path = "byUser", rel = "byUser")
public Page<Changeset> findByUser(@Param("id") User user, Pageable p);
我離開的關係是雙向的,而且還能夠隱藏鏈接的變更從用戶通過在變更集上使用@RestResource(exported=false)
。
側面說明:看來,設置爲輸出=虛假的關係隱藏的鏈接,但實際上並沒有刪除映射。/users/1/changesets不會被公佈,但它仍然有效。
這是一個很好的建議。我實際上實現了它,它非常好。我會用細節編輯我的帖子! –
我會接受你的回答。只是想看看是否有其他人通過一些特定的SDR特定設置來啓用我想要的功能。 –
應該使用'頁'作爲返回類型不是List ' –