我有一個實體(使用lombok)和一些帶註釋的@JsonView註解。@JsonView不過濾屬性(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;
}
有一個控制器方法用@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);
}
我期望輸入將只包含用@JsonView註釋的字段。 但我已經充滿了田野。
我試圖調試春天和傑克遜的來源。 在com.fasterxml.jackson.databind.SerializationConfig我看到活動視圖是我的類JsonViews.OrderAdvancedSearch.class 但在com.fasterxml.jackson.databind.ser.std.BeanSerializerBase變量filteredProps始終具有我的實體的所有屬性。
你找到一個答案?我與Spring 4.1 RC2和Jackson 2.3.2有同樣的問題。當我直接使用ObjectMapper時,我可以使@JsonView註釋工作,但不能通過Spring自動實現。 – Christopher 2014-09-08 19:26:17