Как видно из заголовка, как map из org.springframework.data.domain.Page работает?
Согласно документации, предлагается, чтобы вы добавили конвертер в качестве карты параметр, и вы получите новую карту с преобразованным содержимым. Согласно этой интерпретации, я написал код для чего-то следующего:
Page<T> results = getPagedResults();
return results.map(x -> {
x.setElement("some constant");
return x;
});
Однако вышеприведенное не сработало, как ожидалось. Я получил страницу со всеми остальными значениями, такими как count и так далее, но содержимое было пустым списком! Я действительно должен был написать код таким образом.
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;
}
...
};
Второй вариант - многословный и, похоже, выполняет избыточную работу. Я ожидал, что первый кусок кода будет делать то же самое, но это не так.
Я неправильно читаю документацию? И где бы вы использовали функцию карты Пейджа, если она не должна использоваться, как я ее использовал?