Questo è in riferimento to a question I asked a month back.Un modo migliore per evitare l'eccezione di init pigro durante la serializzazione in una risposta JSON
In this question la risposta per evitare l'eccezione di init pigro quando serializzazione json era di impostare null alle variabili che causano l'eccezione di init pigro. Ma considera quando la classe ha molte dipendenze. Ora con il codice base viene cresciuto e ogni volta devo impostare null alle variabili fastidiose in tutto il codice per evitare problemi di serializzazione json. Il metodo non sembra accurato quando la base del codice è grande.
Un codice di esempio è mostrato sotto che non sembra buono.
//setting some variables to avoid lazy init exception in jackson mapper serialization
batch.setEnrollmentList(null);
List<BatchSchedule> scheduleList = (ArrayList<BatchSchedule>) batch.getBatchScheduleList();
for (BatchSchedule batchSchedule : scheduleList) {
batchSchedule.setBatch(null);
}
batch.getLecturer().setBatchList(null);
batch.getLecturer().setSubjectList(null);
batch.getSubject().setBatchList(null);
batch.getSubject().setLecturerList(null);
Potete per favore suggerirmi un modo migliore per gestire questo problema. Grazie.
Mille grazie per la rapida risposta. Una domanda, ignora quel campo anche quando deserializza? –
sembra così, http://jackson.codehaus.org/1.0.0/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html Non l'ho provato – Subin
da json 1.9 in poi sia i setter che i getter sono ignorati. Se la serializzazione è l'unica parte da ignorare, è necessario utilizzare l'annotazione JsonIgnore nel metodo getter e inoltre aggiungere l'annotazione JsonProperty al metodo field o setter per evitare di ignorare la deserializzazione e viceversa. Grazie Subin per l'aiuto !!! –