Hibernate problème - “Utilisation de @OneToMany ou @ManyToMany, en ciblant un mappage de classe”
Je suis la recherche de mon pieds avec Hibernate Annotations et j'ai frappé un problème j'espère que quelqu'un peut aider avec.
J'ai 2 entités, de Section et de ScopeTopic. La Section a une Liste membre de la classe, donc un "Un à Plusieurs" de la relation. Quand je lance mon test de l'unité, je suis cette exception:
Utilisation de @OneToMany ou @ManyToMany, en ciblant un mappage de classe: com.xxx.domaine.De la Section.scopeTopic[com.xxx.domaine.ScopeTopic]
Je suppose que l'erreur implique que mon ScopeTopic entité n'est pas associé à une table? Je ne peux pas voir avec j'ai fait de mal. Voici les classes d'Entité:
@Entity
public class Section {
private Long id;
private List<ScopeTopic> scopeTopics;
public Section() {}
@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToMany
@JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")},
inverseJoinColumns = {@JoinColumn(name="scope_topic_id")} )
public List<ScopeTopic> getScopeTopic() {
return scopeTopic;
}
public void setScopeTopic(List<ScopeTopic> scopeTopic) {
this.scopeTopic = scopeTopic;
}
}
@Entity
@Table(name = "scope_topic")
public class ScopeTopic {
private Long id;
private String topic;
public ScopeTopic() {}
@Id
public Long getId() {
return id;
}
public void setId() {
this.id = id;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
}
Je suis sûr que c'est mon propre manque de compréhension qui est en faute donc quelques conseils ce serait génial, merci!
Vous devez vous connecter pour publier un commentaire.
Vos annotations ont l'air bien. Ici sont les choses à vérifier:
assurez-vous que l'annotation est
javax.persistence.Entity
, et pasorg.hibernate.annotations.Entity
. L'ancien fait de l'entité détectable. Le dernier est juste un plus.si vous êtes manuellement à l'inscription de votre entités (en persistence.xml en hibernate.cfg.xml ou lors de la configuration de votre session d'usine), puis assurez-vous que vous avez également répertorié les
ScopeTopic
entitéassurez-vous de ne pas avoir plusieurs
ScopeTopic
classes dans les différents paquets, et vous avez importé le mauvais.packagesToScan
De la Mine était de ne pas avoir
@Entity
sur le côté "plusieurs" de l'entitéVotre entité peut pas répertorié dans le fichier de configuration hibernate.
Principalement en
Hibernate
, besoin d'ajouter de laEntity
classe danshibernate.cfg.xml
comme-</...>
et près de la même manière?Si vous utilisez Java configuration dans un spring-data-jpa projet, assurez-vous que vous numérisez le package que l'entité est en. Par exemple, si l'entité a vécu com.foo.myservice.les choses alors la configuration suivante annotation ci-dessous ne serait pas le ramasser.
Vous pu le résoudre en desserrant à juste com.foo.myservice (bien sûr, garder à l'esprit toutes les autres effets de l'élargissement de votre champ d'application de scan pour les entités).
J'ai eu le même problème et j'ai pu le résoudre en ajoutant de l'entité en persistence.xml.
Le problème a été causé en raison du fait que l'entité n'a pas été ajouté à la persistance de config. Modifier votre persistance de fichier:
...
Dans mon cas je doit ajouter à mes cours, lors de la construction de la
SessionFactory
, avecaddAnnotationClass