ho disposto l'annotazione sulla classe/POJO e anche configurato il mapper, ma ancora serializzarenulli valori@JsonInclude (Include.NON_NULL) non funzionante/Jackson serializzazione valori nulli
sto usando Hibernate 4.3.7 Femmina e Jackson 2.4.4. Le collezioni sono pigro caricato
Pojo: getter e setter Rimosso
@JsonInclude(Include.NON_NULL)
@Entity
@Table
public class School {
@Id
@GeneratedValue
private int id;
@OneToMany(cascade=CascadeType.ALL,fetch= FetchType.LAZY)
private List<Student> students;
@OneToMany(cascade=CascadeType.ALL,fetch= FetchType.LAZY)
private List<Employee> staff;
}
JSONMapper:
@Component
public class JSONMapper extends ObjectMapper {
/**
*
*/
private static final long serialVersionUID = -3131980955975958812L;
//ref http://blog.pastelstudios.com/2012/03/12/spring-3-1-hibernate-4-jackson-module-hibernate/
public JSONMapper() {
Hibernate4Module hm = new Hibernate4Module();
registerModule(hm);
configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
configure(SerializationFeature.INDENT_OUTPUT , false);
configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
setSerializationInclusion(Include.NON_NULL);
}
}
uscita:
{"id":1,"students":null,"staff":null}
Voglio includere vuoto perché mostra un elenco esiste e il suo vuoto. Ma null significa che non è caricato. Fondamentalmente alle prese con oggetti Lazy in letargo. Non voglio mostrare i proxy. –
È consigliabile utilizzare sempre elenchi vuoti anziché valori nulli. Questo perché Hibernate utilizzerà sempre i proxy, anche quando non esiste un figlio associato, il che significa che l'unica volta in cui si ha un valore nullo è quando si crea l'oggetto Parent per la prima volta. –