How to map Page<ObjectEntity> to Page<ObjectDTO> in spring-data-rest How to map Page<ObjectEntity> to Page<ObjectDTO> in spring-data-rest spring spring

How to map Page<ObjectEntity> to Page<ObjectDTO> in spring-data-rest


You can still use the Page.map without lambda expressions:

Page<ObjectEntity> entities = objectEntityRepository.findAll(pageable);Page<ObjectDto> dtoPage = entities.map(new Converter<ObjectEntity, ObjectDto>() {    @Override    public ObjectDto convert(ObjectEntity entity) {        ObjectDto dto = new ObjectDto();        // Conversion logic        return dto;    }});


In Spring Data 2, the Page map method takes a Function instead of a Converter, but it still works basically the same as @Ali Dehghani described.

Using Function:

Page<ObjectEntity> entities = objectEntityRepository.findAll(pageable);Page<ObjectDto> dtoPage = entities.map(new Function<ObjectEntity, ObjectDto>() {    @Override    public ObjectDto apply(ObjectEntity entity) {        ObjectDto dto = new ObjectDto();        // Conversion logic        return dto;    }});


And in java8:

Page<ObjectDto> entities =  objectEntityRepository.findAll(pageable) .map(ObjectDto::fromEntity);

Where fromEntity is a static method on ObjectDto that contains the conversion logic.