2017-05-15 2 views
1

ich diesen Fehler, wenn ich versuche, eine Einheit mit mehr als einer Einheit zur Karte ..com.fasterxml.jackson.databind.JsonMappingException: Mehrere Rückverweis Eigenschaften mit dem Namen ‚defaultReference‘

/// Das ist mein Kandidatenprofil Einheit /////////

 

    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 

/// Das ist meine Erfahrung Details Einheit ////////////

 

    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 */

/// Dies ist meine Rolleneinheit //////

 

    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; 

Dieser Fehler Ich ---------------- immer fehlgeschlagen Jackson Deserialisierung für Typ [[einfache Art, Klasse com.demo.project bewerten .premiumjobportal.model.CandidateProfile]]: com.fasterxml.jackson.databind.JsonMappingException: Mehrere Zurückverweiseigenschaften mit dem Namen 'defaultReference'

Fehler bei der Auswertung der Jackson-Deserialisierung für Typ [[einfacher Typ, Klasse com.demo. project.premiumjobportal.model.CandidateProfile]]: com.fasterxml.jackson.databind.JsonMappingException: Mehrere Rückverweiseigenschaften mit dem Namen 'defaultReference'

Bitte helfen Sie mir dabei. Ich habe überall gesucht und jede Lösung ausprobiert, aber dann bekomme ich auch diesen Fehler.

Antwort

3

Wenn Sie @ JsonBackReference für Ihre Getter/Setter-Methode in Ihrem Projekt mehr als zweimal verwenden, sollten Sie sie mit einem bestimmten Referenznamen unterscheiden.

In Role Entitätsklasse haben Sie @JsonBackReference zweimal

@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; 

Sie sollten es sich ändern verwendet -

@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; 
+0

Dank. Jetzt funktioniert es –

+0

@Rakeshkumar Sie können die Antwort akzeptieren und es anweisen. – Arjit

Verwandte Themen