JPA - Как скопировать и изменить его содержимое объекта страницы? - PullRequest
0 голосов
/ 16 июня 2020

У меня есть модели Meeting и Favorite;

public class Meeting implements Serializable {
    private long id;
    private String meetingTitle;
    private Date meetingStartDate;
    private User host;
}
public class MeetingFavorite implements Serializable {
    private long id;
    private boolean active = false;
    private Meeting meeting;
    private Date updatedDate;
}

И я могу успешно получить объект MeetingFavorite страницы, например:

    @GetMapping(value = "/favorite-meetings", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE)
    public ResponseEntity searchFavoriteMeetings(
            MeetingFavoriteSpecification search, HttpSession session) {
        Page<MeetingFavorite> page = meetingsService.findFavoriteMeetings(search);
        return ResponseEntity.ok(page);
    }

Это возможно получить содержимое Meeting только из MeetingFavorite страницы с данными разбивки на страницы?

Я пробовал это, и он возвращает Meeting объектов. Но данные пагинации теряются.

        Page<MeetingFavorite> page = meetingsService.findFavoriteMeetings(search);
        List<Meeting> meetings = new ArrayList<Meeting>();
        page.forEach(entity -> meetings.add(entity.getMeeting()));
        final Page<Meeting> meetingPage = new PageImpl<>(meetings);
        return ResponseEntity.ok(meetingPage);

1 Ответ

0 голосов
/ 16 июня 2020

О, я нашел способ. Спасибо.

        List<Meeting> meetings = new ArrayList<Meeting>();
        page.forEach(entity -> meetings.add(entity.getMeeting()));
        Sort sort = new Sort(Sort.Direction.DESC, "updatedDate");
        Pageable pageable = new PageRequest(search.getOffset() / search.getLimit(), search.getLimit(), sort);
        final Page<Meeting> meetingPage = new PageImpl<Meeting>(meetings, pageable, page.getTotalElements());
        return ResponseEntity.ok(meetingPage);
...