Erreur de mise en veille prolongée : impossible de déterminer le type pour java.util.List
Problème :
Lorsque vous tentez d'utiliser Hibernate pour des opérations CRUD impliquant des relations un-à-plusieurs et plusieurs-à-un, l'erreur suivante se produit :
org.hibernate.MappingException: Could not determine type for: java.util.List, at table: College, for columns: [org.hibernate.mapping.Column(students)]
Classes d'entité :
<code class="java">@Entity public class College { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int collegeId; private String collegeName; @OneToMany(targetEntity = Student.class, mappedBy = "college", fetch = FetchType.EAGER) private List<Student> students; } @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int studentId; private String studentName; @ManyToOne @JoinColumn(name = "collegeId") private College college; }</code>
Détails supplémentaires :
Solution :
Le problème se pose car Hibernate ne peut pas déterminer le type de domaine des étudiants en raison de l’utilisation de la stratégie d’accès au terrain. Pour résoudre ce problème, les annotations JPA doivent être placées directement au-dessus de chaque champ au lieu des propriétés du getter.
<code class="java">@Entity public class College { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int collegeId; private String collegeName; @OneToMany(targetEntity = Student.class, mappedBy = "college", fetch = FetchType.EAGER) public List<Student> students; }</code>
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!