Rumah > Java > javaTutorial > Mengapa Hibernate Melemparkan Ralat \'Tidak Dapat Menentukan Jenis untuk java.util.List\' dalam Perhubungan Satu-Ke-Banyak?

Mengapa Hibernate Melemparkan Ralat \'Tidak Dapat Menentukan Jenis untuk java.util.List\' dalam Perhubungan Satu-Ke-Banyak?

DDD
Lepaskan: 2024-10-25 15:02:02
asal
604 orang telah melayarinya

Why Does Hibernate Throw a

Ralat Hibernate: Tidak Dapat Menentukan Jenis untuk java.util.List

Masalah:

Apabila cuba menggunakan Hibernate untuk operasi CRUD yang melibatkan perhubungan One-To-Many dan Many-To-One, ralat berikut ditemui:

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

Kelas Entiti:

<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>
Salin selepas log masuk

Butiran Tambahan:

  • Ralat menunjukkan bahawa Hibernate tidak dapat menentukan jenis bidang pelajar dalam kelas Kolej.
  • Penggunaan strategi akses medan ditunjukkan oleh anotasi yang diletakkan terus pada medan.
  • Anotasi @OneToMany menggunakan atribut mappedBy, yang membayangkan bahawa perhubungan diuruskan oleh medan kolej dalam kelas Pelajar.
  • Fail konfigurasi XML yang disediakan menyediakan kilang sesi Hibernate dan menentukan sifat yang berkaitan.

Penyelesaian:

Isu timbul kerana Hibernate tidak dapat menentukan jenis bidang pelajar kerana penggunaan strategi capaian medan. Untuk menyelesaikan masalah ini, anotasi JPA hendaklah diletakkan betul-betul di atas setiap medan dan bukannya sifat 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>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Hibernate Melemparkan Ralat \'Tidak Dapat Menentukan Jenis untuk java.util.List\' dalam Perhubungan Satu-Ke-Banyak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan