Ho un'entità:jackson - non serializzare oggetti pigre
@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;
}
poi ho un controller il cui scopo è quello di recuperare i libri, il mio problema è che, il campo di genere viene incluso nella risposta JSON di il mio controller In qualsiasi modo posso escludere quei campi che sono pigri carichi quando serializza l'oggetto?
Questa è la configurazione del mio ObjectMapper:
Hibernate4Module hm = new Hibernate4Module();
hm.configure(Hibernate4Module.Feature.FORCE_LAZY_LOADING, false);
registerModule(hm);
configure(SerializationFeature.INDENT_OUTPUT, true);
Grazie!
Non riesco a contrassegnarlo come JsonIgnore, poiché sarà per sempre fuori dalla scatola di serializzazione. Ci saranno momenti in cui avrò bisogno di recuperare i generi insieme al libro, e per allora userò "fetch join" sulla mia query in modo che non sia nullo.
[Transient] [1] [1]: http://stackoverflow.com/ questions/20700530/why-use-transient-keyword-in-java Prova a utilizzare questo argomento per ottenere il tuo interesse;) – Fincio
Ciao @Fincio, non posso rendere il campo di genere come transitorio, in quanto ne ho bisogno è persistente sul Banca dati. – lorraine
Hmmm, che dire di @JsonIgnoreProperties ({"genere"}) o @JsonIgnore – Fincio