Maison  >  Article  >  Java  >  Pourquoi est-ce que j'obtiens « Impossible de déterminer le type pour : java.util.List » lorsque j'utilise l'annotation @OneToMany d'Hibernate ?

Pourquoi est-ce que j'obtiens « Impossible de déterminer le type pour : java.util.List » lorsque j'utilise l'annotation @OneToMany d'Hibernate ?

DDD
DDDoriginal
2024-10-25 17:23:02717parcourir

Why am I getting

Impossible de déterminer le type de liste

Problème :

Lorsque vous utilisez Hibernate pour les opérations de données, vous rencontrez l'erreur " Impossible de déterminer le type pour : java.util.List." Cela se produit lors de la définition d'une relation un-à-plusieurs entre les entités Collège et Étudiant à l'aide des annotations @OneToMany et @ManyToOne.

Contexte :

L'erreur survient car Hibernate est impossible de déterminer le type de collection (Liste<Étudiant>). L'annotation doit être appliquée aux champs plutôt qu'aux méthodes getter lors de l'utilisation de la stratégie d'accès aux champs, comme indiqué par l'annotation @Id.

Solution :

Pour résoudre l'erreur, modifiez l'annotation @OneToMany dans la classe College pour qu'elle soit appliquée directement au champ au lieu de la méthode getter. Voici le code corrigé :

<code class="java">// College.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;

    // Other getters and setters omitted
}</code>

Considérations supplémentaires :

  • Vérifiez à nouveau le chemin de classe et assurez-vous que les dépendances Hibernate sont incluses.
  • Assurez-vous que la structure de la table de la base de données s'aligne sur les mappages d'entités.
  • Envisagez d'ajouter @JoinColumn(name="collegeId") à l'annotation @ManyToOne dans la classe Student si la colonne de clé étrangère de la base de données a un nom différent de "collegeId."

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