Saya menemukan kaki saya dengan Hibernate Annotations dan saya telah mengalami masalah yang saya harap seseorang dapat membantu.
Saya memiliki 2 entitas, Bagian dan ScopeTopic. Bagian tersebut memiliki anggota kelas Daftar, jadi hubungan Satu dengan Banyak. Ketika saya menjalankan pengujian unit saya, saya mendapatkan pengecualian ini:
Penggunaan @OneToMany atau @ManyToMany yang menargetkan kelas yang belum dipetakan: com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
Saya akan berasumsi bahwa kesalahan menyiratkan bahwa entitas ScopeTopic saya tidak dipetakan ke tabel? Saya tidak bisa melihat dengan saya telah melakukan kesalahan. Berikut adalah kelas-kelas Entity:
@Entity
public class Section {
private Long id;
private List<ScopeTopic> scopeTopics;
public Section() {}
@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToMany
@JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")},
inverseJoinColumns = {@JoinColumn(name="scope_topic_id")} )
public List<ScopeTopic> getScopeTopic() {
return scopeTopic;
}
public void setScopeTopic(List<ScopeTopic> scopeTopic) {
this.scopeTopic = scopeTopic;
}
}
@Entity
@Table(name = "scope_topic")
public class ScopeTopic {
private Long id;
private String topic;
public ScopeTopic() {}
@Id
public Long getId() {
return id;
}
public void setId() {
this.id = id;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
}
Saya cukup yakin itu adalah kesalahan saya sendiri sehingga beberapa panduan akan sangat bagus, terima kasih!
packagesToScan
Milik saya tidak memiliki
@Entity
entitas banyak sisisumber
Entitas Anda mungkin tidak terdaftar dalam file konfigurasi hibernasi.
sumber
Sebagian besar
Hibernate
, perlu menambahkanEntity
kelashibernate.cfg.xml
seperti-sumber
Jika Anda menggunakan konfigurasi Java dalam proyek spring-data-jpa, pastikan Anda memindai paket tempat entitas itu berada. Misalnya, jika entitas menjalankan com.foo.myservice.things, maka anotasi konfigurasi berikut tidak akan ambil itu.
Anda dapat memperbaikinya dengan melonggarkannya hingga hanya com.foo.myservice (tentu saja, perhatikan efek lain dari memperluas cakupan Anda untuk memindai entitas).
sumber
Saya memiliki masalah yang sama dan saya dapat menyelesaikannya dengan menambahkan entitas ke dalam persistence.xml. Masalah ini disebabkan karena entitas tidak ditambahkan ke konfigurasi persistensi. Edit file persistensi Anda:
...
sumber
Dalam kasus saya, a harus menambahkan kelas saya, saat membangun
SessionFactory
, denganaddAnnotationClass
sumber