如何在Spring数据2中从Page<ObjectOne>映射到Page<ObjectTwo>?

How to map from Page<ObjectOne> to Page<ObjectTwo> in Spring Data 2?

我正在查看一些旧代码并尝试重写它,但是我遇到了问题。

这是运行良好的旧代码:

public Page<SearchResult> search(String text, int pageNumber) {
    
    PageRequest request = PageRequest.of(pageNumber-1, itemsPerPage);
    Page<Profile> results = profileDao.findByInterestsNameContainingIgnoreCase(text, request);
    
    Converter<Profile, SearchResult> converter = new Converter<Profile, SearchResult>() {
        @Override
        public SearchResult convert(Profile profile) {
            return new SearchResult(profile);
        }       
    };
    
    return results.map(converter);
}

但我使用的是 Spring 数据 2,其中页面映射方法使用函数而不是转换器,所以我不知道如何重写它。

我读了这个话题:但是我没能把Page<Profile>转换成Page<SearchResult>,因为我还没有完全理解这个函数的概念。

有人可以使用 Spring 数据 2 方法(函数而不是转换器)翻译上面的代码片段吗?

根据您的示例,我将按如下方式实现地图功能:

Page<SearchResult> searchResultPage = results.map(profile -> new SearchResult(profile));

如果您对 lambda 表达式和函数接口的简短介绍感兴趣,我建议您查看以下摘要:https://www.baeldung.com/java-8-lambda-expressions-tips