#spring-boot #rest #querydsl
Вопрос:
Я разрабатываю типичный CRUD для Api REST.
Для этого у меня есть универсальный контроллер с логикой и другими субконтроллерами, которые расширяют предыдущий. Проблема в том, что если я попытаюсь использовать предикат QueryDSL для предварительных фильтров, я не знаю, как можно обойтись без переопределения основного метода.
До сих пор это то, что у меня есть.
Базовый микроконтроллер
@GetMapping("/list") public ResponseEntitylt;MappingJacksonValuegt; findAll( String fields, Predicate predicate, Pageable pageable) { log.info("List"); return new ResponseEntity( FilterUtils.getResults( fields, getFilterName(), getCRUDService().findAll(predicate, pageable)), HttpStatus.OK); }
пример1контроллер расширяет базовый контроллер
@Override public ResponseEntitylt;MappingJacksonValuegt; findAll( @RequestParam(value = Constants.FILTER_PARAMETER, required = false) String fields, @QuerydslPredicate(root = Example1.class) Predicate predicate, Pageable pageable) { return super.findAll(fields, predicate, pageable); }
Example2Controller расширяет базовый контроллер
@Override public ResponseEntitylt;MappingJacksonValuegt; findAll( @RequestParam(value = Constants.FILTER_PARAMETER, required = false) String fields, @QuerydslPredicate(root = Example2.class) Predicate predicate, Pageable pageable) { return super.findAll(fields, predicate, pageable); }
Я хотел бы получить что-то подобное:
Базовый микроконтроллер
@GetMapping("/list") public ResponseEntitylt;MappingJacksonValuegt; findAll( @RequestParam(value = Constants.FILTER_PARAMETER, required = false) String fields,, @QuerydslPredicate(root = getEntityClass()), Pageable pageable) { log.info("List"); return new ResponseEntity( FilterUtils.getResults( fields, getFilterName(), getCRUDService().findAll(predicate, pageable)), HttpStatus.OK); }
Может ли кто-нибудь сказать мне, возможно ли это?
С уважением