Rumah  >  Artikel  >  Java  >  Mengapa saya mendapat \"Tidak dapat menentukan jenis untuk: java.util.List\" apabila menggunakan anotasi @OneToMany Hibernate?

Mengapa saya mendapat \"Tidak dapat menentukan jenis untuk: java.util.List\" apabila menggunakan anotasi @OneToMany Hibernate?

DDD
DDDasal
2024-10-25 17:23:02717semak imbas

Why am I getting

Tidak Dapat Menentukan Jenis untuk Senarai

Masalah:

Apabila menggunakan Hibernate untuk operasi data, anda menghadapi ralat " Tidak dapat menentukan jenis untuk: java.util.List." Ini berlaku semasa mentakrifkan hubungan One-To-Many antara entiti Kolej dan Pelajar menggunakan anotasi @OneToMany dan @ManyToOne.

Latar Belakang:

Ralat timbul kerana Hibernate ialah tidak dapat menentukan jenis koleksi (Senarai). Anotasi hendaklah digunakan pada medan dan bukannya kaedah getter apabila menggunakan strategi akses medan, seperti yang ditunjukkan oleh anotasi @Id.

Penyelesaian:

Untuk menyelesaikan ralat, ubah suai anotasi @OneToMany dalam kelas Kolej untuk digunakan terus pada medan dan bukannya kaedah pengambil. Berikut ialah kod yang diperbetulkan:

<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>

Pertimbangan Tambahan:

  • Semak dua kali laluan kelas dan pastikan kebergantungan Hibernate disertakan.
  • Pastikan struktur jadual pangkalan data sejajar dengan pemetaan entiti.
  • Pertimbangkan untuk menambah @JoinColumn(name="collegeId") pada anotasi @ManyToOne dalam kelas Pelajar jika lajur kunci asing dalam pangkalan data mempunyai nama yang berbeza daripada "collegeId."

Atas ialah kandungan terperinci Mengapa saya mendapat \"Tidak dapat menentukan jenis untuk: java.util.List\" apabila menggunakan anotasi @OneToMany Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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