Ответ 1
Нет, нет, особенно, поскольку прогнозы обычно применяются к результату выполнения запроса в каждом конкретном случае. Таким образом, они в настоящее время предназначены для выборочного применения к типам доменов.
По состоянию на последний выпуск Spring сборника данных Data Fowler GA релиз проекционной инфраструктуры может использоваться программно в контроллерах Spring MVC. Просто объявите Spring bean для SpelAwareProxyProjectionFactory
:
@Configuration
class SomeConfig {
@Bean
public SpelAwareProxyProjectionFactory projectionFactory() {
return new SpelAwareProxyProjectionFactory();
}
}
Затем введите его в свой контроллер и используйте его:
@Controller
class SampleController {
private final ProjectionFactory projectionFactory;
@Autowired
public SampleController(ProjectionFactory projectionFactory) {
this.projectionFactory = projectionFactory;
}
@PreAuthorize(value = "hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/users/employee")
public Page<?> listEmployees(Pageable pageable) {
return usersRepository.findEmployeeUsers(pageable).//
map(user -> projectionFactory.createProjection(Projection.class, user);
}
}
Посмотрите, как на последней версии Page
есть метод map(…)
, который можно использовать для преобразования содержимого страницы на лету. Мы используем лямбда JDK 8 для предоставления шага преобразования с помощью ProjectionFactory
.