Мое приложение построено с помощью Spring boot (1.3.3.RELEASE) с Spring mvc, Spring данными jpa hibernate. MySql - это база данных, а Jackson - сериализатор Json. На java 8.
Я хочу вернуть огромный набор данных в свой метод контроллера. Вместо того, чтобы извлекать все данные и затем переходить в сериализатор jackson, я хочу вернуть поток объектов, как показано ниже:
@RequestMapping(value = "/candidates/all", method = RequestMethod.GET)
public Stream<Candidate> getAllCandidates(){
try {
return candidateDao.findAllByCustomQueryAndStream();
} catch(Exception e){
LOG.error("Exception in getCandidates",e);
}
return null;
}
мой DAO выглядит следующим образом:
@Query("select c from Candidate c")
public Stream<Candidate> findAllByCustomQueryAndStream();
Однако Джексон сериализует объект потока вместо содержимого потока. Фактический результат ниже:
{"parallel" : false}
Как я могу обучить Джексона сериализации содержимого, а не объекта потока?