如何映射页面 到页面 在春季数据休息


问题内容

当我点击数据库时,PagingAndSortingRepository.findAll(Pageable)我得到了Page<ObjectEntity>。但是,我想向客户端而不是实体公开DTO。我可以通过将实体注入到其构造函数中来创建DTO,但是如何将Page对象中的实体映射到DTO呢?根据spring文档,Page提供只读操作。

另外,由于我们不支持Java 8,因此也不可能使用Page.map。如何手动创建带有映射对象的新Page?


问题答案:

您仍然可以使用Page.map不带lambda表达式:

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;
    }
});