Ho un'entità (usando lombok) con qualche annotazione annotata @JsonView.@JsonView non filtro proprietà (Spring 4.1.0.RC2, Jackson 2.3.2)
@Entity
@Table(name = "`order`")
@Getter
@Setter
@ToString
@Description("Приказ")
public class Order extends Auditable {
private static final long serialVersionUID = -1299630493411381582L;
@JsonView(JsonViews.OrderAdvancedSearch.class)
@ManyToOne
private School school;
@Column(length = 50)
private String number;
}
C'è un metodo di controllo annotato con annotazione @JsonView.
@Secured(value = {"ROLE_AUTHENTICATED_USER"})
@RequestMapping(value = "/order", method = RequestMethod.GET, headers = {"Content-Type=application/json"})
@JsonView(JsonViews.OrderAdvancedSearch.class)
@ResponseBody
public ResponseEntity<Order> getOrder(HttpServletRequest request) throws IOException, DnevnikException, RestException {
Order order = orderRepository.findOne(292L); // just for example
return new ResponseEntity<>(order,HttpStatus.OK);
}
Mi aspettavo che quell'input conterrà solo i campi annotati con @JsonView. Ma io pieno di campi.
Sto cercando di eseguire il debug delle sorgenti di primavera e jackson. In com.fasterxml.jackson.databind.SerializationConfig Vedo che la vista attiva è la mia classe JsonViews.OrderAdvancedSearch.class Ma in com.fasterxml.jackson.databind.ser.std.BeanSerializerBase variabile filteredProps ha sempre tutte le proprietà della mia entità.
Hai trovato una risposta a questo? Sto avendo lo stesso problema con Spring 4.1 RC2 e Jackson 2.3.2. Quando utilizzo direttamente ObjectMapper, posso far funzionare le annotazioni @JsonView ma non automaticamente tramite Spring. – Christopher