Spring-Data-Rest пейджинг атрибутов

У меня есть два ресурса, определенные с помощью PagingAndSortingRepository:

  • галереи/{id}
  • изображения/{id}

Пейджинг в целом для обоих ресурсов доступен по используемому типу репозитория.

Сама галерея содержит список изображений

@Entity
@Table(name = "Gallery")
public class Gallery extends AbstractEntity {

    private String name;

    @OneToMany(fetch = FetchType.EAGER)
    private List<Image> images;
    ...
}

Теперь я могу получить доступ к изображениям галереи через

  • галереи/1/изображения

Можно ли включить пейджинг также и для этих подсписков? или каков стиль REST для обработки этих больших списков.

заранее спасибо, Гвидо


person Guido    schedule 10.01.2014    source источник


Ответы (2)


Если вы сделаете запрос findByGalleryId к репозиторию изображений, он должен вернуть вам выгруженные результаты. Однако я не понимаю, почему запрашиваемый вами подсписок не выгружается. Вы уверены, что у него достаточно записей для пейджинга?

person Andres    schedule 10.01.2014
comment
Привет Андрес, спасибо за ваш ответ. FindByGalleryId невозможен, так как у изображения нет идентификатора галереи. Связывание осуществляется таблицей ссылок. Это семантическая проблема. Изображение не обязательно принадлежит галерее. Я проверю, чтобы увеличить количество изображений, но я ожидаю, что в любом случае будет запись страницы со значением totalCount, чтобы не нуждаться в другой обработке во внешнем интерфейсе для обоих случаев. - person Guido; 12.01.2014

Связано с моим вопросом здесь: Spring Data Rest Pageable Child Collection

До сих пор мне не удавалось получить коллекции внутри объекта для страницы так, как вы описываете. В итоге я сделал так, как предложил Андрес.

Вы можете реализовать поиск изображений, чтобы вернуть страницу, а затем использовать @RestResource(exported=false), чтобы скрыть ссылку со стороны галереи.

person Ethan Anderson    schedule 02.02.2014