Dav*_*cía 6 spring dto spring-data
我正在尝试在Spring项目中使用DTO来解耦业务和表示,但是在从Spring Data存储库中检索数据时遇到了问题.这里我有一个示例代码:
public Page<UserDto> findAll(int pageIndex) {
return userRepository.findAll(createPageable(pageIndex)); // Page<User>
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试返回UserDto的页面,但我正在获取一个User页面.
我怎样才能做到这一点?
小智 14
你可以这样做:
public Page<UserDto> findAll(Pageable p) {
Page<User> page = userRepository.findAll(p); // Page<User>
return new PageImpl<UserDto>(UserConverter.convert(page.getContent()), p, page.getTotalElements());
}
Run Code Online (Sandbox Code Playgroud)
小智 9
从 Spring-Data 1.10 开始,您可以使用该Page#map函数:
public Page<UserDto> findAll(Pageable p) {
return userRepository.findAll(p).map(UserConverter::convert);
}
Run Code Online (Sandbox Code Playgroud)
请参阅Spring 数据。该UserConverter#convert方法接受 aPerson并将其转换为PersonDto。
public PersonDto convert(Person person) {
return new PersonDto(person.getXyz1(), person.getXyz2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5772 次 |
| 最近记录: |