Можно ли указать projection
при непосредственном вызове метода репозитория данных? Здесь код репозитория - заметьте, что я не хотел бы показывать его через REST, вместо этого я хотел бы иметь возможность вызвать его из службы или контроллера:
@RepositoryRestResource(exported = false)
public interface UsersRepository extends PagingAndSortingRepository<User, Long> {
@Query(value = "SELECT u FROM User u WHERE ....")
public Page<User> findEmployeeUsers(Pageable p);
}
Затем в контроллере я делаю это:
@PreAuthorize(value = "hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/users/employee")
public Page<User> listEmployees(Pageable pageable) {
return usersRepository.findEmployeeUsers(pageable);
}
Можно ли указать метод projection
для findEmployeeUsers
, когда он вызывается непосредственно, как указано выше?
Я понимаю, что вышеприведенный код может показаться странным для кого-то... можно было бы открыть репозиторий через REST и поместить объект @PreAuthorize
в репозиторий. Контроллер мышления - это более подходящее место для проверок безопасности - это более естественно, а также проще проверить.
Итак, может ли projection
вещь каким-то образом передаваться непосредственно в метод репозитория?