未能评估Jackson反序列化,无法处理托管/反向引用';默认参考';(Json)

未能评估Jackson反序列化,无法处理托管/反向引用';默认参考';(Json),json,spring-mvc,Json,Spring Mvc,我有一个班级学生管理系统,有其他班级参考 如下 学生管理系统 package com.rasvek.cg.entity; import java.util.List; import com.fasterxml.jackson.annotation.JsonBackReference; public class StudentAdmissinAssoDTO { private PrimaryStudentAdmission primaryAdmission; private

我有一个班级学生管理系统,有其他班级参考

如下

学生管理系统

package com.rasvek.cg.entity;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonBackReference;

public class StudentAdmissinAssoDTO
{
    private PrimaryStudentAdmission primaryAdmission;
    private StudentDetails studentDetailsDto;
    private StudentJoiningDetails studentJoiningDetails;
    private StudentPresentClassDetails studentPresentClassDetails;
    private StudentGeneralDetails studentGeneralDetails;
    private StudentPrevSchoolDetails studentPrevSchoolDetails;
    private StudentParentDetails studentParentDetails; 
    private MasterAddress masterAddress; 
    private List<AssocFeeStudent> assocFeeStudentId;
    public StudentDetails getStudentDetailsDto() {
        return studentDetailsDto; 
    } 

    public void ListStudentDetailsDto(StudentDetails studentDetailsDto) {
        this.studentDetailsDto = studentDetailsDto;
    }

    public PrimaryStudentAdmission getPrimaryAdmission() {
        return primaryAdmission;
    }

    public void ListPrimaryAdmission(PrimaryStudentAdmission primaryAdmission) {
        this.primaryAdmission = primaryAdmission;
    }  

    public StudentJoiningDetails getStudentJoiningDetails() {
        return studentJoiningDetails;
    }

    public void ListStudentJoiningDetails(StudentJoiningDetails studentJoiningDetails) {
        this.studentJoiningDetails = studentJoiningDetails;
    }

    public StudentPresentClassDetails getStudentPresentClassDetails() {
        return studentPresentClassDetails;
    }

    public void ListStudentPresentClassDetails(StudentPresentClassDetails studentPresentClassDetails) {
        this.studentPresentClassDetails = studentPresentClassDetails;
    }

    public StudentGeneralDetails getStudentGeneralDetails() {
        return studentGeneralDetails;
    }

    public void ListStudentGeneralDetails(StudentGeneralDetails studentGeneralDetails) {
        this.studentGeneralDetails = studentGeneralDetails;
    }

    public StudentPrevSchoolDetails getStudentPrevSchoolDetails() {
        return studentPrevSchoolDetails;
    }

    public void ListStudentPrevSchoolDetails(StudentPrevSchoolDetails studentPrevSchoolDetails) {
        this.studentPrevSchoolDetails = studentPrevSchoolDetails;
    }

    public StudentParentDetails getStudentParentDetails() {
        return studentParentDetails;
    }

    public void ListStudentParentDetails(StudentParentDetails studentParentDetails) {
        this.studentParentDetails = studentParentDetails;
    }

    public MasterAddress getMasterAddress() {
        return masterAddress;
    }

    public void ListMasterAddress(MasterAddress masterAddress) {
        this.masterAddress = masterAddress; 
    }

    public List<AssocFeeStudent> getAssocFeeStudentId() {
        return assocFeeStudentId;
    }

    public void ListAssocFeeStudentId(List<AssocFeeStudent> assocFeeStudentId) {
        this.assocFeeStudentId = assocFeeStudentId;
    }


}
请查看主地址

package com.rasvek.cg.entity;
 //Generated May 14, 2018 11:39:07 PM by Hibernate Tools 5.1.7.Final

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;

/**
 * MasterAddress generated by hbm2java
 */
@Entity
@Table(name = "master_address", catalog = "campus_guru_01")
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property = "addressId")
public class MasterAddress implements java.io.Serializable {

    private Integer addressId;
    private Integer studentAdmissionId;
    private String isSame;  

    private MasterAddressCountry masterAddressCountry;
    private MasterAddressDistrict masterAddressDistrict;
    private MasterAddressState masterAddressState;
    private String houseNum;
    private String streetAddress;
    private String citymandal;
    private String pincode;
    private String addressType;
    private Set<AssocStaffAddress> assocStaffAddresses = new HashSet<AssocStaffAddress>(0);
    private Set<AssocStudentAddress> assocStudentAddresses = new HashSet<AssocStudentAddress>(0);

    public MasterAddress() {
    }

    public MasterAddress(MasterAddressCountry masterAddressCountry, MasterAddressDistrict masterAddressDistrict,
            MasterAddressState masterAddressState) {
        this.masterAddressCountry = masterAddressCountry;
        this.masterAddressDistrict = masterAddressDistrict;
        this.masterAddressState = masterAddressState;
    }

    public MasterAddress(MasterAddressCountry masterAddressCountry, MasterAddressDistrict masterAddressDistrict, MasterAddressState masterAddressState, String houseNum, String streetAddress, String citymandal, String pincode, String addressType, Set<AssocStaffAddress> assocStaffAddresses, Set<AssocStudentAddress> assocStudentAddresses) {
       this.masterAddressCountry = masterAddressCountry;
       this.masterAddressDistrict = masterAddressDistrict;
       this.masterAddressState = masterAddressState;
       this.houseNum = houseNum;
       this.streetAddress = streetAddress;
       this.citymandal = citymandal;
       this.pincode = pincode;
       this.addressType = addressType;
       this.assocStaffAddresses = assocStaffAddresses;
       this.assocStudentAddresses = assocStudentAddresses;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)

    @Column(name = "address_id", unique = true, nullable = false)
    public Integer getAddressId() {
        return this.addressId;
    }  

    public void setAddressId(Integer addressId) {
        this.addressId = addressId;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "country_id", nullable = false)
    public MasterAddressCountry getMasterAddressCountry() {
        return this.masterAddressCountry;
    }

    public void setMasterAddressCountry(MasterAddressCountry masterAddressCountry) {
        this.masterAddressCountry = masterAddressCountry;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "district_id", nullable = false)
    public MasterAddressDistrict getMasterAddressDistrict() {
        return this.masterAddressDistrict;
    }

    public void setMasterAddressDistrict(MasterAddressDistrict masterAddressDistrict) {
        this.masterAddressDistrict = masterAddressDistrict;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "state_id", nullable = false)
    public MasterAddressState getMasterAddressState() {
        return this.masterAddressState;
    }

    public void setMasterAddressState(MasterAddressState masterAddressState) {
        this.masterAddressState = masterAddressState;
    }

    @Column(name = "house_num", length = 45)
    public String getHouseNum() {
        return this.houseNum;
    }

    public void setHouseNum(String houseNum) {
        this.houseNum = houseNum;
    }

    @Column(name = "street_address", length = 45)
    public String getStreetAddress() {
        return this.streetAddress;
    }

    public void setStreetAddress(String streetAddress) {
        this.streetAddress = streetAddress;
    }

    @Column(name="citymandal")
    public String getCitymandal() {
        return this.citymandal;
    }

    public void setCitymandal(String citymandal) {
        this.citymandal = citymandal;
    }

    @Column(name = "pincode", length = 45)
    public String getPincode() {
        return this.pincode;
    }

    public void setPincode(String pincode) {
        this.pincode = pincode;
    }

    @Column(name = "address_type", length = 9)
    public String getAddressType() {
        return this.addressType;
    }

    public void setAddressType(String addressType) {
        this.addressType = addressType;
    }

    @OneToMany(fetch = FetchType.EAGER, mappedBy = "masterAddress")
    public Set<AssocStaffAddress> getAssocStaffAddresses() {
        return this.assocStaffAddresses;
    }

    public void setAssocStaffAddresses(Set<AssocStaffAddress> assocStaffAddresses) {
        this.assocStaffAddresses = assocStaffAddresses;
    }

    @OneToMany(fetch = FetchType.EAGER, mappedBy = "masterAddress")
    public Set<AssocStudentAddress> getAssocStudentAddresses() {
        return this.assocStudentAddresses;
    }

    public void setAssocStudentAddresses(Set<AssocStudentAddress> assocStudentAddresses) {
        this.assocStudentAddresses = assocStudentAddresses;
    }
    @Column(name="student_admission_id")  
    public Integer getStudentAdmissionId() {
        return studentAdmissionId;
    }

    public void setStudentAdmissionId(Integer studentAdmissionId) {
        this.studentAdmissionId = studentAdmissionId;
    }
    @Column(name="is_same")
    public String getIsSame() {
        return isSame;
    }

    public void setIsSame(String isSame) {
        this.isSame = isSame;
    }

}
为什么我会得到这个例外

(http-nio-8017-exec-3:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter):  [org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.logWarningIfNecessary(AbstractJackson2HttpMessageConverter.java:205)] 
  Failed to evaluate Jackson deserialization for type [[simple type, class com.rasvek.cg.entity.StudentAdmissinAssoDTO]]: java.lang.IllegalArgumentException: Can not handle managed/back reference 'defaultReference': no back reference property found from type [collection type; class java.util.Set, contains [simple type, class com.rasvek.cg.entity.MasterAddress]

有人能解释为什么会这样吗。谢谢你

我发现我的错误是我把
@JsonManagedReference
放错了
MasterAddress的MasterDistrict类中的
@JsonManagedReference

MasterAddress  masterAddress =null;
masterAddress = studentAdmissinAssoDTO.getMasterAddress();
(http-nio-8017-exec-3:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter):  [org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.logWarningIfNecessary(AbstractJackson2HttpMessageConverter.java:205)] 
  Failed to evaluate Jackson deserialization for type [[simple type, class com.rasvek.cg.entity.StudentAdmissinAssoDTO]]: java.lang.IllegalArgumentException: Can not handle managed/back reference 'defaultReference': no back reference property found from type [collection type; class java.util.Set, contains [simple type, class com.rasvek.cg.entity.MasterAddress]