Кода очень много. Я тут выкладываю саму проблему с комментариями. Давайте с самого начала проблему. Уберу все Scope, чтобы не засорять код. И обращу внимание на саму проблему. В идеале что есть и чего хочу. Вначале, сервис. Из-за чего все началось
| Код | @Service("queryService") public class QueryServiceImpl implements QueryService { // Некрасивое неработающее решение private Query query;
@Override public void compileQuery(String... args) { query = new Query(); // Здесь анализирую все параметры и собираю запрос query = <compile_query>; }
@Override public List<Person> pageable(int page) { query.getPage(page); } }
|
Далее сам контроллер
| Код | @RequestMapping("/search") @Controller public class SearchController { @Autowired private QueryService queryService;
@PreAuthorize("permitAll") @RequestMapping(value = "/photos", method = RequestMethod.GET) public @ResponseBody String init(@RequestParam("field") String field) { // Парсим field, получаем аргументы queryService.compileQuery(argsFromField); // Тут формируем строку return "Ok!"; }
@PreAuthorize("permitAll") @RequestMapping(value = "/photos/result", method = RequestMethod.GET) public @Response List<Person> result(@RequestParam("page") int page) { // Тут QUERY равно NULL, поскольку новый объект. return queryService.pageable(page); } }
|
И вот тут проблема. Как мне в сервисе сохранить мою переменную query |