【发布时间】:2020-06-27 03:52:36
【问题描述】:
正如标题所说,来自 org.springframework.data.domain.Page 的 map 是如何工作的?
根据文档,它建议您将转换器作为地图参数,然后您将获得包含转换后内容的新地图。按照这个解释,我写了如下代码。
Page<T> results = getPagedResults();
return results.map(x -> {
x.setElement("some constant");
return x;
});
但是,上述操作并没有按预期工作。我得到了所有其他值都完好无损的页面,比如计数等,但内容是一个空列表!我实际上不得不这样写代码。
Page<T> results = getPagedResults();
return new Page<T>() {
@Override
public int getTotalPages() {
return results.getTotalPages();
}
...
@Override
public List<T> getContent() {
List<T> contents = result.getContent();
for (T content : contents) {
content.setElement("some constant");
}
return contents;
}
...
};
第二个选择是冗长的,似乎做了多余的工作。我原以为第一段代码也能做到这一点,但事实并非如此。
我是否阅读了错误的文档?如果不应该使用Page的地图功能,你会在哪里使用它,我使用它的方式?
【问题讨论】:
-
如果页面内容为空
content:[]那么.map(...)将不起作用 -
内容不是,我自己查了。
标签: java spring pagination