Rumah > Java > javaTutorial > teks badan

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

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!