Ich habe eine Einheit:jackson - serialisieren nicht faul Objekte
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column
private String title;
@OneToMany(fetch = FetchType.LAZY, mappedBy = ("movie"),cascade = CascadeType.ALL)
private List<Genre> genre;
}
Dann habe ich einen Controller, dessen Zweck es ist, Bücher zu holen, mein Problem ist, dass das Genre-Feld in der JSON-Antwort enthalten ist der mein Controller. Kann ich die Felder, die faul geladen sind, ausschließen, wenn Jackson das Objekt serialisiert? Diese
ist die Konfiguration meines ObjectMapper:
Hibernate4Module hm = new Hibernate4Module();
hm.configure(Hibernate4Module.Feature.FORCE_LAZY_LOADING, false);
registerModule(hm);
configure(SerializationFeature.INDENT_OUTPUT, true);
Dank!
Ich kann es nicht als JsonIgnore markieren, wie es für immer aus der Serialisierungsbox sein wird. Es wird Zeiten geben, in denen ich die Genres zusammen mit dem Buch abrufen muss, und bis dahin werde ich "Fetch Join" für meine Abfrage verwenden, damit es nicht null ist.
[Transient] [1] [1]: http://stackoverflow.com/ Fragen/20700530/Why-Use-Transient-Keyword-in-Java Versuchen Sie mit diesem Thema, um Ihre anserw;) – Fincio
Hi @Fincio, kann ich nicht Genre-Feld als transient, wie ich es auf der Datenbank. – lorraine
Hmmm, wie wäre es mit @JsonIgnoreProperties ({"genre"}) oder @JsonIgnore – Fincio