gpt4 book ai didi

java - @JsonView 不过滤属性(Spring 4.1.0.RC2,Jackson 2.3.2)

转载 作者:IT老高 更新时间:2023-10-28 13:47:24 26 4
gpt4 key购买 nike

我有一个带有 @JsonView 注释的实体(使用 lombok)。

@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 注解的 Controller 方法。

@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 注释的字段。但我有很多领域。

我正在尝试调试 spring 和 jackson 源。在 com.fasterxml.jackson.databind.SerializationConfig 我看到 Activity View 是我的类 JsonViews.OrderAdvancedSearch.class但是在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase 变量中filteredProps 总是具有我实体的所有属性。

最佳答案

尝试调整您的 Jackson 对象映射器:

// disable this feature so that attributes with no view definition
// do not get serialized / deserialized
mapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION);

引用:Feature: JSON Views

关于java - @JsonView 不过滤属性(Spring 4.1.0.RC2,Jackson 2.3.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25563189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com