@JsonIgnoreProperties(value = {"pageable", "last", "totalPages", "totalElements", "size", "number", "first", "numberOfElements", "sort", "empty"})
public class CustomPageImpl<T> extends PageImpl<T> {
@JsonCreator
public CustomPageImpl(List content, Pageable pageable, long total) {
super(content,pageable.getSort().isSorted() ? pageable : PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by("createdAt").descending()), total);
}
@JsonCreator
public CustomPageImpl(List content) {
super(content);
}
@JsonGetter(value = "contents")
@Override
public List getContent() {
return super.getContent();
}
@JsonGetter(value = "paging")
public Map getPaging() {
Map<String, Object> paging = new HashMap<>();
paging.put("totalPages", super.getTotalPages());
paging.put("totalElements", super.getTotalElements());
paging.put("pageSize", super.getSize());
paging.put("pageNumber", super.getNumber() + 1);
paging.put("isFirst", super.isFirst());
paging.put("isLast", super.isLast());
paging.put("sort", super.getSort());
paging.put("isEmpty", super.isEmpty());
return paging;
}
}
---------------------------------------------------------
우리 프로젝트에 맞추기위해 커스터마이징하여 사용
'Spring&Spring Boot' 카테고리의 다른 글
(Spring Controller Logging) Spring에서 http request 로깅하기 - 1 (0) | 2020.01.06 |
---|---|
(Spring)(Pageable) Page<F>에서 Page<T>로 바꾸는 클래스 (0) | 2019.06.18 |
(Spring) Spring IOC , Spring DI (0) | 2019.04.08 |
(Spring Boot) 사용자 Class를 Bean 객체로 간단하게 설정하기 / Bean 객체 등록 (0) | 2018.10.31 |
(Spring Boot) @Transactional 이란? / @Transactional에 대하여 (0) | 2018.10.10 |
댓글