简体   繁体   English

com.fasterxml.jackson.databind.JsonMappingException:具有名称“defaultReference”的多个反向引用属性

[英]com.fasterxml.jackson.databind.JsonMappingException: Multiple back-reference properties with name 'defaultReference'

I'm getting this error, when I'm trying to map one entity with more than one entity..当我尝试将一个实体与多个实体映射时,我收到此错误..

/// This is my candidate profile entity///////// /// 这是我的候选人资料实体/////////

package com.demo.project.premiumjobportal.model;

    import java.io.Serializable;
    import java.util.List;

    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.validation.constraints.NotNull;
    import javax.xml.bind.annotation.XmlRootElement;

    import com.fasterxml.jackson.annotation.JsonBackReference;
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

    //Candidate details table : Master Table
    @Entity
    @Table(name="candidate_profile")
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
    @XmlRootElement
    public class CandidateProfile implements Serializable {

        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue
        private int id;

        @NotNull
        @Column(name="first_name", length = 25)
        private String firstName;

        @NotNull
        @Column(name="last_name", length = 25)
        private String lastName;

        @NotNull
        @Column(name="username", length = 50)
        private String username;

        @Column(name="alt_email_id", length = 50)
        private String alternateEmailId;

        @NotNull
        @Column(name="mobile_no", length = 15)
        private String mobileNum;

        @Column(name="alt_mobile_no", length = 15)
        private String alternateMobileNum;


        @Column(name="ssc_board", length = 50)
        private String sscBoard;


        @Column(name="ssc_school", length = 50)
        private String sscSchool;


        @Column(name="ssc_percent", length = 4)
        private float sscPercentage;


        @Column(name="ssc_year_of_passout", length = 4)
        private int sscYearOfPassout;


        @Column(name="hsc_board", length = 50)
        private String hscBoard;


        @Column(name="hsc_school", length = 50)
        private String hscSchool;


        @Column(name="hsc_percent", length = 4)
        private float hscPercentage;


        @Column(name="hsc_year_of_passout", length = 4)
        private int hscYearOfPassout;


        @Column(name="grad_university", length = 100)
        private String gradiduteUniversity;


        @Column(name="grad_institute", length = 100)
        private String gradiduteInstitute;


        @Column(name="grad_percent", length = 4)
        private float gradidutePercentage;


        @Column(name="grad_year_of_passout", length = 4)
        private int gradiduteYearOfPassout;

        @Column(name="postgrad_university", length = 100)
        private String postGradiduteUniversity;

        @Column(name="postgrad_institute", length = 100)
        private String postGradiduteInstitute;

        @Column(name="postgrad_percent", length = 4)
        private float postGradidutePercentage;

        @Column(name="postgrad_year_of_passout", length = 4)
        private int postGradiduteYearOfPassout;

        private String notes;

        private String Password;

        @OneToMany(mappedBy = "candidateProfile", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
        @JsonBackReference
        private List experienceDetails;

        @OneToMany(mappedBy = "candidateProfile", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
        @JsonBackReference
        private List candidateJobs;

        @ManyToOne
        private Role roleName;



        /* Constructor */
        public CandidateProfile() {
            super();
            }


        // Getters and Setters

/// This is my experience details entity //////////// /// 这是我的体验详情实体 ///////////

package com.cfa.project.premiumjobportal.model;

    import java.io.Serializable;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
    import javax.xml.bind.annotation.XmlRootElement;

    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

    //Experience class, which connected with CandidateProfile.class
    @Entity
    @Table(name="experience_details")
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
    @XmlRootElement
    public class ExperienceDetails implements Serializable {

        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue
        private int id;

        @Column(name = "tot_experenice", length = 2)
        private String totExperience;

        @Column(name = "companies_month_experience")
        private String companiesMonthExperience;

        @Column(name = "skills")
        private String _skills;

        @Column(name = "extra_curricular")
        private String extraCurricular;

        private String notes;

        /* Mapping : Joining with Candidate table */
        @ManyToOne
        private CandidateProfile candidateProfile;

        /*Constructor*/
        public ExperienceDetails() {
            super();
        }


        /*Constructor using fields*/
        /**
         * @param id
         * @param totExperience
         * @param companiesMonthExperience
         * @param _skills
         * @param extraCurricular
         * @param notes
         * @param candidateProfile
         */
        public ExperienceDetails(int id, String totExperience, String companiesMonthExperience, String _skills,
                String extraCurricular, String notes, CandidateProfile candidateProfile) {
            super();
            this.id = id;
            this.totExperience = totExperience;
            this.companiesMonthExperience = companiesMonthExperience;
            this._skills = _skills;
            this.extraCurricular = extraCurricular;
            this.notes = notes;
            this.candidateProfile = candidateProfile;
        }

        /* Generating Getters and setters */

/// This is my role entity ////// /// 这是我的角色实体 /////

import java.io.Serializable;
    import java.util.List;

    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.xml.bind.annotation.XmlRootElement;

    import com.fasterxml.jackson.annotation.JsonBackReference;
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

    @Entity
    @Table(name="role")
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
    @XmlRootElement
    public class Role implements Serializable {

        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue
        private int id;

        @Column(length = 10)
        private String name;

        @OneToMany(mappedBy = "roleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
        @JsonBackReference
        private List candidateProfiles;

        @OneToMany(mappedBy = "companyRoleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
        @JsonBackReference
        private List recruiterDetails;

This error I'm getting----------------我得到这个错误----------------

Failed to evaluate Jackson deserialization for type [[simple type, class 
com.demo.project.premiumjobportal.model.CandidateProfile]]: 
com.fasterxml.jackson.databind.JsonMappingException: Multiple back-reference 
properties with name 'defaultReference'

Please help me with this.请帮我解决一下这个。 I searched everywhere and I tried every solution but then also I'm getting this error.我到处搜索并尝试了所有解决方案,但后来我也收到了这个错误。

If you use @JsonBackReference on your getter/setter method in your project more than twice,you should distinguish them with a specific Reference name.如果您在项目中的 getter/setter 方法上使用 @JsonBackReference 两次以上,则应使用特定的引用名称来区分它们。

In Role entity class, you have used @JsonBackReference twiceRole实体类中,您使用@JsonBackReference两次@JsonBackReference

@OneToMany(mappedBy = "roleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
    @JsonBackReference
    private List candidateProfiles;

    @OneToMany(mappedBy = "companyRoleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
    @JsonBackReference
    private List recruiterDetails;

You should change it to -你应该把它改成——

@OneToMany(mappedBy = "roleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
    @JsonBackReference(value="candidate-profiles")
    private List candidateProfiles;

    @OneToMany(mappedBy = "companyRoleName", fetch = FetchType.LAZY,cascade = CascadeType.REMOVE)
    @JsonBackReference(value="recruiter-details")
    private List recruiterDetails;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Jackson:多个反向引用属性,名称为“defaultReference” - Jackson: Multiple back-reference properties with name 'defaultReference' 具有名称“defaultReference”的多个反向引用属性 - Multiple back-reference properties with name 'defaultReference' com.fasterxml.jackson.databind.JsonMappingException:直接自引用导致循环(通过引用链) - com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain) 名称为“defaultReference”的多个反向引用属性? 为什么? - Multiple back-reference properties with name 'defaultReference'! Why? Jboss 7.1 中的 com.fasterxml.jackson.databind.JsonMappingException - com.fasterxml.jackson.databind.JsonMappingException In Jboss 7.1 com.fasterxml.jackson.databind.JsonMappingException由于新的Maven条目 - com.fasterxml.jackson.databind.JsonMappingException due to new maven entries 如何解决com.fasterxml.jackson.databind.JsonMappingException? - How to solve the com.fasterxml.jackson.databind.JsonMappingException? 无法读取文件:N / A com.fasterxml.jackson.databind.JsonMappingException - Could not read document: N/A com.fasterxml.jackson.databind.JsonMappingException Weblogic 12.2.1.3上的com.fasterxml.jackson.databind.JsonMappingException - com.fasterxml.jackson.databind.JsonMappingException on Weblogic 12.2.1.3 错误:com.fasterxml.jackson.databind.JsonMappingException:未找到序列化程序 - error: com.fasterxml.jackson.databind.JsonMappingException: No serializer found
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM