簡體   English   中英

我在JPA中正確使用ManyToMany映射嗎?

[英]Am I using a ManyToMany mapping in JPA properly?

我正在開展一個學校項目,目標是為一個虛構的葯房制作一個JavaEE應用程序。

由於一種葯物可以治愈一種或多種疾病,一種疾病可以通過一種或多種葯物治療,我認為它是Drug方面的@OneToMany關系和Disease方面的@ManyToMany 我也有一個Patient實體。 患者可能患有一種或多種疾病,並且一種疾病可能折磨許多患者。 我將我的類編碼如下,但是當我嘗試從實體生成表時,我在DrugDisease類之間得到了一個不兼容的映射異常。 我在Eclipse中使用GlassFish服務器和Derby連接(一切都配置良好,所以它肯定是代碼問題)。 我的課程如下:

public class Drug implements Serializable{
@OneToMany(targetEntity = Disease.class, mappedBy = "Cures_For_This_Disease")
private List<Disease> Diseases_Cured_By_This_Drug;
//other fields such as the name, price and origin of the drug
}

public class Disease implements Serializable{
@ManyToMany(targetEntity = Drug.class)
private List<Drug> Cures_For_This_Disease;
@ManyToMany(targetEntity = Patient.class)
private List<Patient> Afflicted_Patients;
//other fields such as name of disease etc.
}

public class Patient implements Serializable{
@OneToMany(targetEntity = Disease.class, mappedBy = "AfflictedPatients")
private List<Disease> Current_Diseases;
//other fields such as Patient name, social sec. nubmer etc
}

我究竟做錯了什么?

您應該在DrugPatient課程中使用@ManyToMany注釋。

public class Drug implements Serializable{
    @ManyToMany
    private List<Disease> Diseases_Cured_By_This_Drug;

}

public class Disease implements Serializable{
    @ManyToMany(mappedBy="Diseases_Cured_By_This_Drug")
    private List<Drug> Cures_For_This_Disease;
}

這應該在兩個相應的表之間創建一個連接表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM