当前位置: 首页 > 知识库问答 >
问题:

Jackson:名称为“默认引用”的多个反向引用属性

祁高格
2023-03-14

我试图将一个json(字符串格式)映射到一个对象,但我得到以下错误

JSONMappingException:多个名为“default reference”的反向引用属性

这是json字符串

{"pledge":"74","client":"66","date":"","originId":"1","qualityId":"2","grade":"19","packing":"4","tons":"1000","fromDate":"","toDate":"","type":0,"remark":"","status":0,"area":"1531","id":-1,"refNumber":"","log":"","user":""}
@Entity
@Table(name="movement", catalog = "wsmill3")
public class MovementView implements java.io.Serializable {
    private Integer id;
    private Integer originId;
    private Integer qualityId;
    private String refNumber;
    private Integer client;
    private String clientRef;
    private Integer grade;
    private Integer packing;
    private Integer pledge;
    private Integer area;
    private Date date;
    private Double tons;
    private Date fromDate;
    private Date toDate;
    private String remark;
    private User user;
    private Byte status;
    private String log;
    private Byte type;
    //constructor, getter and setter
String data = request.getParameter("data");
ObjectMapper mapper = new ObjectMapper();
MovementView movement = mapper.readValue(data, MovementView.class);

我不知道这个错误,我做了完全相同的方式,我读杰克逊的主页。知道这件事的人请帮帮我

共有1个答案

仲孙凡
2023-03-14

如果您在项目中对多个getter/setter方法使用@JsonBackReference,则应该使用特定的引用名称来区分它们。

在最新版本中可能只允许一个“default reference'

例如:

@JsonBackReference(value="user-movement")
public User getUser() {
    return user;
}
@JsonManagedReference(value="user-movement")
public MovementView getMovementView() {
    return movementView;
}
 类似资料:
  • 我在一个类中有多个反向引用类。由于我对它们使用了,所以我得到了一个错误。我为这些类分配了注释,但仍然得到相同的错误。 错误:

  • 当我试图将一个实体映射到多个实体时,我得到了这个错误。 ///这是我的候选人配置文件实体////////// ///这是我的体验详情实体////////////// ///这是我的角色实体////// 我得到的这个错误----------- 请帮帮我。我到处搜索,我尝试了每一个解决方案,但我也得到了这个错误。

  • 我试图使用Jackson 1.9将嵌套的JSON对象反序列化到POJO中,但遇到了麻烦。下面是我试图解析的类和示例JSON字符串。 (省略了getter和setter) JSON字符串: Java类: 但是,当我尝试执行反序列化时: 我收到以下异常消息: JAVAlang.IllegalArgumentException:名为“defaultReference”的多个反向引用属性 我读到提供(va

  • 问题内容: H2似乎在带引号的名称和不带引号的名称之间有所不同。有没有办法让他们以相同的方式对待他们? 这是我已经完成的测试: 这是查询: 我该怎么做才能使这些查询与H2一起使用? 问题答案: 根据SQL规范的要求,H2中的引号名称区分大小写。这意味着它将起作用: 但这不会: 在H2中,不带引号的名称不区分大小写。它们通常会转换为大写字母(例如在Oracle和其他数据库中)。这意味着声明 与…相同

  • 问题内容: 我一直在努力寻找一种在Python中加载JSON对象的好方法。我发送此json数据: 到后端,它将以字符串形式接收,然后我用来解析它。 但是每次我遇到同样的异常: 我用谷歌搜索,但是除了这个解决方案之外似乎什么都没用,在我个人看来效率不高,因为它接受任何类型的数据,即使不是json格式的数据也是如此。 任何建议将不胜感激。 问题答案: 这个: 不是JSON。 这个: 是JSON。 编辑

  • 最近有了这两个DTO,我犯了这个错误 MappingJackson2HttpMessageConverter: 163-无法评估类型[简单类型,类seml.dto.PoiDto]的Jackson反序列化:java.lang.IllegalArgumentException:无法处理托管/反向引用'default引用':反向引用类型(java.util.设置)与托管类型(seml.dto.Conce