我有一个 HotelRepository,它有一个命名方法,它返回一个默认Page<Hotel>项作为结果而不是列表。
我想将页面中的内容类型更改Hotel为HotelDto,因为 DTO 具有我想显示的自定义参数。我已经有一个将 Hotel 转换为 HotelDto 的构造函数。
我的尝试:
Page<Hotel> hotels = dao.findAll(pageRequest);
return new PageImpl<>(
hotels.getContent().stream()
.map(hotel -> new HotelListItemDto(hotel, hotel.getSupplier())).collect(Collectors.toList()),
pageRequest, hotels.getContent().size());
问题是它只处理结果的一页。当然,我可以先将所有结果作为一个列表,然后基于该列表创建一个页面,但它失去了优势Page(我认为返回页面会提高搜索请求的性能)。
那么我应该怎么做才能保持页面优势但仍然具有自定义输出的能力呢?