2012-12-08 7 views
6

Dies ist in Referenz to a question I asked a month back.Ein besserer Weg zur Vermeidung von Hibernate-Lazy-Init-Ausnahme beim Serialisieren in eine JSON-Antwort

In this question Die Antwort zu vermeiden, die Lazy-Init-Ausnahme, wenn JSON-Serialisierung NULL auf die Variablen, die Lazy-Init-Ausnahme verursachen, festgelegt wurde. Aber bedenken Sie, wenn die Klasse viele Abhängigkeiten hat. Jetzt mit der Code-Basis ist gewachsen und jedes Mal, wenn ich null auf die lästigen Variablen überall im Code festlegen muss, um json Serialisierung Problem zu vermeiden. Die Methode sieht nicht gut aus, wenn die Codebasis groß ist.

Ein Beispielcode ist unten abgebildet, der nicht gut aussieht.

//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); 

Können Sie mir bitte einen besseren Weg vorschlagen, um dieses Problem zu behandeln. Danke.

Antwort

4

Sie können die faulen Eigenschaften mit @JsonIgnore annotieren, so dass Jackson es beim Serialisieren ignoriert.

+0

Vielen Dank für die schnelle Antwort. Eine Frage, ignoriert dieses Feld beim Deserialisieren auch? –

+0

scheint es so, http://jackson.codehaus.org/1.0.0/javadoc/org/codehau/jackson/annotate/JsonIgnore.html Ich habe es nicht versucht – Subin

+1

von Json 1.9 weiter beide Setter und Getter werden ignoriert. Wenn die Serialisierung der einzige Teil ist, der ignoriert werden soll, muss die JsonIgnore-Annotation in der Getter-Methode verwendet werden und außerdem die JsonProperty-Annotation zur Feld- oder Setter-Methode hinzugefügt werden, um die Deserialisierung zu ignorieren und umgekehrt. Danke Subin für die Hilfe !!! –

Verwandte Themen