Ich habe eine @Entity namens Benutzer. Es hat eine Reihe von Change wie folgt:Spring Data Rest Bildbare Child Collection
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, mappedBy="user")
private Set<Changeset> changesets = new HashSet<Changeset>();
ich UserRepository haben:
@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 GET auf http://localhost:8080/changesets/
oder http://localhost:8080/users/
ergibt eine ausgelagerte Reaktion.
Wenn ich GET auf http://localhost:8080/users/1/changesets
aufrufen, dann bekomme ich alle Ergebnisse in einem einzigen Array und kein Paging auftritt.
Gibt es eine Möglichkeit, Spring Data Rest anzugeben, dass ich die Changesets-Auflistung auf eine auslagerbare Weise zurückgeben möchte, wenn ich über den übergeordneten Benutzer darauf zugreife? Das Set von Changesets wird schnell wachsen und ich würde lieber nicht Tonnen von Ergebnissen auf einer einzelnen Seite zurückgeben.
EDIT:
Wie von Willie Wheeler schlug ich hinzugefügt, dies zu meinem ChangesetRepository machen es durchsuchbar:
@RestResource(path = "byUser", rel = "byUser")
public Page<Changeset> findByUser(@Param("id") User user, Pageable p);
ich die Beziehung bidirektionale links, sondern war auch in der Lage die Verbindung zu Changesets zu verstecken ein Benutzer mit @RestResource(exported=false)
auf dem Set von Changesets.
Seite Hinweis: Es scheint, dass das Festlegen der Beziehung zu exportierte = false den Link verbirgt, aber das Mapping tatsächlich nicht entfernt./users/1/changesets wird nicht angekündigt, ist aber immer noch gültig.
Das ist ein guter Vorschlag. Ich habe es tatsächlich implementiert und es ist ziemlich nett. Ich werde meinen Beitrag mit Details bearbeiten! –
Ich werde Ihre Antwort akzeptieren. Ich wollte nur sehen, ob irgendjemand mit einer SDR-spezifischen Einstellung durchkam, die das ermöglichte, was ich wollte. –
Sollte 'Seite' als Rückgabetyp anstelle von 'List ' –