繁体   English   中英

如何在 Spring Boot jpa 中关联医生和患者实体

[英]How to relate doctor and patient entities in spring boot jpa

我对弹簧靴很陌生。 我正在创建一个健康中心管理系统,其中我有 2 个实体Doctor & Patient

遵循的规则很少

  • 一个中心可以有很多医生
  • 也可以有多个患者
  • 一个医生一天可以看多个病人
  • 但是一个病人一次只能预约一个医生。

这是我的Doctor实体:

package com.sb.projects.java.spring.medical_api.entities;

import com.sun.istack.NotNull;

import javax.persistence.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Entity
public class Doctors {
    @Id
    @NotNull
    private int id;
    private String name;
    private String email;
    private String degree;
    private String specialization;
    @OneToMany
    private Set<Patients> patient = new HashSet<>();

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getDegree() {
        return degree;
    }

    public void setDegree(String degree) {
        this.degree = degree;
    }

    public String getSpecialization() {
        return specialization;
    }

    public void setSpecialization(String specialization) {
        this.specialization = specialization;
    }


    public Set<Patients> getPatient() {
        return patient;
    }

    public void setPatient(Set<Patients> patient) {
        this.patient = patient;
    }
}

这是我的Patient实体:

package com.sb.projects.java.spring.medical_api.entities;

import com.sun.istack.NotNull;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

@Entity
public class Patients {
    @Id
    @NotNull
    private int id;
    private String name;
    private String email;
    private String contact_no;
    @ManyToOne
    private Doctors doctor;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getContact_no() {
        return contact_no;
    }

    public void setContact_no(String contact_no) {
        this.contact_no = contact_no;
    }

    public Doctors getDoctor() {
        return doctor;
    }

    public void setDoctor(Doctors doctor) {
        this.doctor = doctor;
    }
}

这是我面临的几个问题

  • 我不确定我在DoctorPatient实体之间设置的关系类型是否正确
  • 如果关系正确,那么我不确定Doctor实体中的setPatient setter 函数,我对 setter 函数的实现是否正确
  • 如果以上所有几点都可以,那么什么将是一个完美的模型 json 对象,它将位于 http POST 请求正文中以测试 Doctor Entity

提前感谢您的帮助。

我认为您可以在不考虑任何患者的情况下创建医生,如下所示:

POST http://locahost:8080/v1/doctors

{
    "name": "doctorName",
    "email": "somemail@xyz.com",
    "degree": "xyz",
    "specialization": "a"
}

当您想将患者添加到您的医生时,您只需调用另一个端点来创建您的医生和患者之间的访问

POST http://localhost:8080/visits/{patientId}

body...
{
"doctorId": idOfDoctor,
}

有了这个,您将攻击患者的数据库存储库以在您的患者和您的医生之间创建关系。 将医生与患者直接联系起来对我来说听起来很奇怪,我会与访问日期和时间做一个像“访问”这样的中间关系......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM