Jackson: Mehrere back-Referenz-Eigenschaften mit dem Namen 'defaultReference'
Ich versuche, die Karte json (format-string) ein Objekt, und ich bekomme die folgende Fehlermeldung
com.fasterxml.jackson.databind-Methode.JsonMappingException: Mehrere
back-Referenz-Eigenschaften mit dem Namen 'defaultReference'
Dies ist die json-string
{"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":""}
Dies ist das Objekt,
@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
- und dies ist der code zu tun mapping
String data = request.getParameter("data");
ObjectMapper mapper = new ObjectMapper();
MovementView movement = mapper.readValue(data, MovementView.class);
Ich habe keine Ahnung, mit diesem Fehler, ich habe genau die gleiche Weise, wie ich gelesen habe auf der Jackson homepage. Wer kennt es, bitte helft mir
InformationsquelleAutor der Frage Kien Dang Ngoc | 2013-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie @JsonBackReference auf Ihre getter - /setter-Methode in Ihrem Projekt mehr als das doppelte,sollten Sie unterscheiden, Sie mit einem bestimmten Referenz-Namen.Vielleicht nur ein 'defaultReference' ist erlaubt in der neuesten version.
e.g
in MovementView.class
in User.class
InformationsquelleAutor der Antwort stephen
Ich auch konfrontiert dieses Problem, aber gelöst.
Erwähnen
@JsonIgnoreProperties("inspection")
und@JsonManagedReference
.Gelöst werden, die aufgeworfene Frage durch die Verwendung von zwei
@JSONBackRefrence
im gleichen übergeordneten Klasse.InformationsquelleAutor der Antwort Vivek Gangwar
Ich denke, der beste Weg, dies zu behandeln ist die Verwendung von @JsonIdentityInfo annotation.siehe den thread, die dies aufzeigen.Wie @JsonIdentityInfo mit Zirkelbezügen?
InformationsquelleAutor der Antwort Gayan Prasanna