【发布时间】:2020-12-27 13:36:58
【问题描述】:
我知道过去有多个关于使用 spring jpa 的双向关系的问题,但我的情况有点不同,因为我使用 3 个实体和 2 个关系来实现医疗系统
我有 3 个实体:医生/患者/预约
这是 3 个实体的代码 请注意所有已实现的 setter 、 getter 和构造函数,但为了清楚起见,此处省略了
患者分类
@Entity
public class resPatient {
@Id
@GeneratedValue( strategy= GenerationType.IDENTITY )
private long code;
private String name;
private String gender;
private String email;
private String mobile;
private int age;
private String notes;
@OneToMany(mappedBy = "patient")
List<resPackageMembership> memberships;
@OneToMany(mappedBy = "patient")
List<resAppointment> appointments;
@OneToMany(fetch = FetchType.LAZY,mappedBy = "patient")
List<resMedImage> medImages;
医生类
@Entity
public class resDoctor {
@Id
@GeneratedValue( strategy= GenerationType.IDENTITY )
private long code;
private String name;
private String mobile;
private String email;
private String gender;
private int age;
private String speciality;
@OneToMany(mappedBy = "doctor")
List<resAppointment> appointments;
约会类
@Entity
public class resAppointment {
@Id
@GeneratedValue( strategy= GenerationType.IDENTITY )
private long code;
private String speciality;
@Basic
@Temporal(TemporalType.TIMESTAMP)
private Date dateCreated;
@Basic
@Temporal(TemporalType.TIMESTAMP)
private Date dateToVisit;
private String status;
private String notes;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "doctorCode")
private resDoctor doctor;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "patientCode")
private resPatient patient;
我的医疗系统应该工作的方式是,当我让病人使用我的 restful 控制器时,我想要所有的病人数据,包括他的预约,但这会导致一个无限循环,因为预约的医生也有预约等等.
我不能使用@JSONIGNORE,因为我希望有两个关系让病人预约,这应该让医生没有预约数组,并且不应该有任何病人数据,因为我已经在病人对象中
【问题讨论】:
-
我得到的对象是 { "code": 1, "name": "ahmed ali mohamed", "age": 22, "notes": "high blood pressure", "memberships" : [], "约会": [ { "code": 1, "speciality": "laser", "doctor": { "code": 3, "name": "mohamed kalafalla", "mobile": "012 ", "gender": "male", "age": 22, "speciality": "heart", "appointments": [ {
标签: spring spring-boot hibernate spring-data-jpa spring-data