Maison > Java > javaDidacticiel > 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
Libérer: 2024-10-25 17:23:02
original
903 Les gens l'ont consulté

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal