Causés par: org.mise en veille prolongée.AnnotationException: mappedBy référence à un inconnu entité cible de la propriété
J'ai besoin de faire onetomany relation, mais cette erreur s'affiche
mappedBy référence à un inconnu entité cible de la propriété
c'est parent Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property
package com.dating.model;
import java.util.ArrayList;
import java.util.Collection;
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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="question")
public class PsyQuestions {
@Id
@GenericGenerator(name="autoGen" ,strategy="increment")
@GeneratedValue(generator="autoGen")
@Column(name="questionid")
private long psyQuestionId;
@Column(name="questiontext")
private String question;
@OneToMany(fetch = FetchType.LAZY,mappedBy="question")
private List<PsyOptions> productlist=new ArrayList<PsyOptions>();
public PsyQuestions() {
super();
}
public List<PsyOptions> getProductlist() {
return productlist;
}
public void setProductlist(List<PsyOptions> productlist) {
this.productlist = productlist;
}
public long getPsyQuestionId() {
return psyQuestionId;
}
public void setPsyQuestionId(long psyQuestionId) {
this.psyQuestionId = psyQuestionId;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
}
et cet enfant de la classe
package com.dating.model;
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.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name="option")
public class PsyOptions {
@Id
@GenericGenerator(name="autoGen" ,strategy="increment")
@GeneratedValue(generator="autoGen")
@Column(name="optionid")
private long psyOptionId;
@Column(name="optiontext")
private String optionText;
@JoinColumn(name = "questionid")
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
PsyQuestions psyQuestions;
public PsyOptions() {
super();
}
public PsyQuestions getPsyQuestions() {
return psyQuestions;
}
public void setPsyQuestions(PsyQuestions psyQuestions) {
this.psyQuestions = psyQuestions;
}
public long getPsyOptionId() {
return psyOptionId;
}
public void setPsyOptionId(long psyOptionId) {
this.psyOptionId = psyOptionId;
}
public String getOptionText() {
return optionText;
}
public void setOptionText(String optionText) {
this.optionText = optionText;
}
}
Vous devez vous connecter pour publier un commentaire.
Vous devez définir la
mappedBy
attribut de la@OneToMany
annotation à psyQuestions au lieu de question. La valeur demappedBy
attributs est le nom de la classe de terrain de l'autre côté de la relation, dans ce cas psyQuestions de laManyToOne
côté de la classe PsyOptions.@OneToMany(fetch = FetchType.LAZY,mappedBy="question")
. Cette situation doit changer comme mentionné dans la réponse.J'ai eu le même problème, parce que la mappedBy dans l'entité source est défini sur "inscription" (annotées avec @OneToMany), mais la propriété correspondante dans l'entité cible était "bankEnrollment"; c'est la propriété annotée avec @ManyToOne.
Après la mise à jour de l'inscription pour bankEnrollmentin de l'entité source, l'exception est allé loin (comme expected_.
Leçon apprise: la mappedBy valeur (par exemple, psyQuestions) devrait exister un nom de propriété de l'entité cible.
Ne sais pas si cela va aider quelqu'un, c'était une simple erreur, la cause de cette erreur sur ma config. Sans s'en rendre compte, j'ai eu deux paquets différents de domaine contenant les fichiers de classe. Mappé membre est dans l'autre paquet, tandis que la demande a été seulement de numérisation unique chemin d'accès au package.
Il était difficile de comprendre qu'ils étaient différents par un seul personnage par exemple org.abc.de base.les domaines et les org.occ.de base.les domaines.
Ajouté d'autres package de base de données @configuration scanners résolu le problème pour moi.