Spring Data Rest Pageable Child-Auflistung

Ich habe ein @Entity namens User. Es hat eine Reihe von Changesets wie folgt:

@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="user")
private Set<Changeset> changesets = new HashSet<Changeset>();

Ich habe ein UserRepository:

@Repository
@RestResource(path = "users", rel = "users")
public interface UserRepository extends JpaRepository<User, Long>{ }

Und ein ChangesetRepository:

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

Aufruf von GET onhttp://localhost:8080/changesets/ oderhttp://localhost:8080/users/ liefert eine paginierte Antwort.

Wenn ich GET anrufehttp://localhost:8080/users/1/changesets Dann bekomme ich alle Ergebnisse in einem einzigen Array und es findet kein Paging statt.

Gibt es eine Möglichkeit, Spring Data Rest mitzuteilen, dass ich die Changesets-Auflistung beim Zugriff über den übergeordneten Benutzer seitenweise zurückgeben möchte? Die Menge der Änderungssätze wird schnell zunehmen, und ich möchte lieber nicht Unmengen von Ergebnissen auf einer einzelnen Seite zurückgeben.

BEARBEITEN:

Wie von Willie Wheeler vorgeschlagen, habe ich dies zu meinem ChangesetRepository hinzugefügt, um es durchsuchbar zu machen:

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

Ich habe die Beziehung bidirektional verlassen, konnte aber auch den Link zu Änderungssätzen vor einem Benutzer mithilfe von verbergen@RestResource(exported=false) auf dem Änderungssatz.

Anmerkung: Wenn Sie die Beziehung auf exportiert = falsch einstellen, wird der Link anscheinend ausgeblendet, die Zuordnung wird jedoch nicht entfernt. / users / 1 / changesets wird nicht angekündigt, ist aber immer noch gültig.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage