gpt4 book ai didi

java - 我是否在 JPA 中正确使用了 ManyToMany 映射?

转载 作者:行者123 更新时间:2023-12-02 07:01:15 25 4
gpt4 key购买 nike

我正在开展一个学校项目,目标是为一家虚构的药房制作一个 JavaEE 应用程序。

由于一种药物可以治疗一种或多种疾病,并且一种疾病可以用一种或多种药物治疗,所以我认为这是 Drug 方面的 @OneToMany 关系以及Disease 一侧的@ManyToMany。我还有一个 Patient 实体。一个病人可能患有一种或多种疾病,一种疾病可能折磨很多病人。我对我的类进行了如下编码,但当我尝试从实体生成表时,我的 DrugDisease 类之间出现不兼容映射异常。我在 Eclipse 中使用 GlassFish 服务器和 Derby 连接(一切都配置良好,所以这肯定是代码问题)。我的类(class)如下:

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

这应该在两个相应的表之间创建一个连接表。

关于java - 我是否在 JPA 中正确使用了 ManyToMany 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com