La mia applicazione è costruita utilizzando Spring boot (1.3.3.RELEASE) con molla mvc, spring data jpa hibernate. MySql è il database e Jackson è il serializzatore Json. On java 8.Uscita stream JSON in Spring MVC
Voglio restituire un enorme set di dati nel mio metodo di controllo. Invece di recuperare tutti i dati e poi passare nel serializzatore Jackson, voglio restituire un flusso di oggetti come di seguito:
@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;
}
mia DAO è come qui di seguito:
@Query("select c from Candidate c")
public Stream<Candidate> findAllByCustomQueryAndStream();
Tuttavia, Jackson è la serializzazione l'oggetto flusso invece del contenuto del flusso. L'output effettivo riportato di seguito:
{"parallel" : false}
Come posso chiedere a Jackson di serializzare il contenuto e non l'oggetto dello stream?
per curiosità: come si fa a letto che ' Stream 'usando' RestTemplate'? –
Paizo