Maison >Java >javaDidacticiel >\'Erreur de mappage Hibernate One-To-Many : \\\'Impossible de déterminer le type pour : java.util.List\\\' - Pourquoi et comment y remédier ?\'

\'Erreur de mappage Hibernate One-To-Many : \\\'Impossible de déterminer le type pour : java.util.List\\\' - Pourquoi et comment y remédier ?\'

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 17:56:29308parcourir

Erreur de mappage un-à-plusieurs Hibernate : "Impossible de déterminer le type pour : java.util.List"

Dans Hibernate, gestion Les relations un-à-plusieurs nécessitent des configurations de mappage minutieuses. Cette erreur se produit généralement lorsque les annotations de mappage sont mal placées ou configurées.

En analysant le code fourni, nous rencontrons l'erreur ci-dessous :

org.hibernate.MappingException: Could not determine type for: java.util.List, at table: College, for columns: [org.hibernate.mapping.Column(students)]

Cette erreur indique qu'Hibernate est incapable de déterminer le type de propriété des étudiants dans la classe Collège. Selon le mappage fourni, la propriété Students est annotée avec @OneToMany et est de type List, mais l'annotation est mal placée.

Placement correct de l'annotation

Dans la stratégie d'accès aux champs, qui est déterminée par l'annotation @Id, les annotations JPA doivent être placées juste au-dessus de chaque champ au lieu des propriétés getter. Dans ce cas, l'emplacement correct de l'annotation pour la propriété des étudiants est :

@OneToMany(targetEntity=Student.class, mappedBy="college", fetch=FetchType.EAGER)
private List<Student> students;

Classe universitaire modifiée

Une fois l'emplacement de l'annotation corrigé, la classe universitaire modifiée ressemble à ceci :

@Entity
public class College {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int collegeId;
private String collegeName;

@OneToMany(targetEntity=Student.class, mappedBy=&quot;college&quot;, fetch=FetchType.EAGER)
private List&lt;Student&gt; students; // Annotation is now placed above the field

// Other getters and setters omitted
}

Conclusion

En plaçant correctement l'annotation @OneToMany au-dessus du champ des étudiants, Hibernate peut désormais déterminer correctement le type de propriété et mapper le One -Relation à plusieurs entre le collège et l'étudiant. Cet ajustement résout l'erreur « Impossible de déterminer le type pour : java.util.List ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn