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.