如何映射页面< ObjectEntity>到Page< ObjectDTO>在spring-data-rest中
当我使用 PagingAndSortingRepository.findAll(可分页)
点击数据库时,我得到 Page< ObjectEntity>
。但是,我想将DTO暴露给客户端而不是实体。我可以通过将实体注入到它的构造函数中来创建DTO,但是如何将Page对象中的实体映射到DTO?根据spring文档,Page提供了只读操作。
When I hit the database with PagingAndSortingRepository.findAll(Pageable)
I get Page<ObjectEntity>
. However, I want to expose DTO's to the client and not entities. I can create DTO just by injecting entity into it's constructor, but how do I map the entities in Page object to DTO's? According to spring documentation, Page provides read-only operations.
此外,Page.map不可能,因为我们不支持java 8.如何创建手动映射对象的新页面?
Also, Page.map is not possibility, as we don't have support for java 8. How to create the new Page with mapped objects manually?
您仍然可以使用 Page.map
没有lambda表达式:
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;
}
});