如何在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
我正在查看一些旧代码并尝试重写它,但是我遇到了问题。
这是运行良好的旧代码:
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