Rumah > Java > javaTutorial > 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
Lepaskan: 2024-10-25 17:23:02
asal
905 orang telah melayarinya

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

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