【问题标题】:inserting a foreign key in child table it showing null everytime在子表中插入外键,每次都显示为空
【发布时间】:2019-07-31 11:32:24
【问题描述】:

我正在使用父与医学之间的@OnetoMany 关系在子表中插入一个外键。一位家长有很多药物,它显示我无效。 我对我的问题进行了多次搜索,并尝试了所有可能的解决方案,但都没有成功。

父类

@Entity
@Table(name = "patient_domain")
public class Patient implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)

@Column(name = "p_id")
private Integer p_id;

@Column(name = "doctor_name")
private String doctor_name;

@Column(name="name")
private String name;

@Column(name="hospital_clinic")
private String hospital_clinic;

@Column(name="date")
private Date date;


@OneToMany(mappedBy = "patient", cascade = CascadeType.ALL)
private List<Medicine> medicines;

Patient Bean 类

package com.gamification.beans;

import com.gamification.entities.Medicine;

import java.util.Date;
import java.util.List;

public class PatientBean {

private Integer p_id;
private String name;
private String doctor_name;
private Date date;

private List<Medicine> medicines;

public List<Medicine> getMedicines() {
    return medicines;
}

public void setMedicines(List<Medicine> medicines) {
    this.medicines = medicines;
}

public Integer getP_id() {
    return p_id;
}

public void setP_id(Integer p_id) {
    this.p_id = p_id;
}

public String getName() {
    return name;
}

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

public String getDoctor_name() {
    return doctor_name;
}

public void setDoctor_name(String doctor_name) {
    this.doctor_name = doctor_name;
}

public String getHospital_clinic() {
    return hospital_clinic;
}

public void setHospital_clinic(String hospital_clinic) {
    this.hospital_clinic = hospital_clinic;
}

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}

private String hospital_clinic;

}

医学类

@Entity
@Table(name = "medicine_kit")
public class Medicine implements Serializable {

private static final long serialVersionUID = 1L;


@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "med_id")
private Integer med_id;

@Column(name="med_name")
private String med_name;
@Column(name="med_type")
private String med_type;
@Column(name="med_quantity")
private String med_quantity;


@JsonIgnore
@ManyToOne
@JoinColumn(name = "patient_domain_p_id", nullable = false, 
referencedColumnName = "p_id")
private Patient patient;

药豆

public class MedicineBean {

private Integer med_id;
private  String med_name;
private  String med_type;
private  String med_quantity;

private Integer patientid;

public Integer getPatientid() {
    return patientid;
}

public void setPatientid(Integer patientid) {
    this.patientid = patientid;
}

public Integer getMed_id() {
    return med_id;
}

public void setMed_id(Integer med_id) {
    this.med_id = med_id;
}

public String getMed_name() {
    return med_name;
}

public void setMed_name(String med_name) {
    this.med_name = med_name;
}

public String getMed_type() {
    return med_type;
}

public void setMed_type(String med_type) {
    this.med_type = med_type;
}

public String getMed_quantity() {
    return med_quantity;
}

public void setMed_quantity(String med_quantity) {
    this.med_quantity = med_quantity;
}
}

病人控制器

@RequestMapping(method = {RequestMethod.POST})
public ResponseEntity<ApiResponse> createOrUpdateUser(@RequestBody PatientBean patientBean) throws Exception {



    ApiResponse status = new ApiResponse();
    status.setStatus(false);
    status.setMessage("please select record");
    try {
        if(patientBean != null) {

            Patient patient = new Patient();

            List<Medicine> listmedicine=new ArrayList<Medicine>();
            status.setStatus(true);
            if(patientBean.getP_id() != null) {
                patient.setP_id(patientBean.getP_id());
                status.setMessage("Successfully record updated");
            } else {
                status.setMessage("Successfully record created");
            }

            patient.setName(patientBean.getName());
            patient.setDoctor_name(patientBean.getDoctor_name());
            patient.setHospital_clinic(patientBean.getHospital_clinic());
            patient.setDate(CommonUtil.getCurrentTimestamp());


            if(patient.getMedicines().size()>0)
            {
                for (int i=0;i<patient.getMedicines().size();i++)
                {
                    Medicine medicine=new Medicine();
                    medicine.setMed_name(patientBean.getMedicines().get(i).getMed_name());
                    medicine.setMed_quantity(patientBean.getMedicines().get(i).getMed_quantity());
                    medicine.setMed_type(patientBean.getMedicines().get(i).getMed_type());
                    medicine.setPatient(patient);
                    listmedicine.add(medicine);

                }
            }
            patient.setMedicines(listmedicine);
            status.getResponseList().add(patient);
            patienServiceImp.createPatient(patient);
        }


        return new ResponseEntity<ApiResponse>(status, HttpStatus.OK);
    } catch (Exception e) {
        status.setStatus(false);
        status.setMessage("Something went wrong on server");
        MyPrint.println(e.getMessage());
        return new ResponseEntity<ApiResponse>(status, HttpStatus.OK);
    }
}

【问题讨论】:

  • 请帮帮我!

标签: mysql hibernate spring-boot


【解决方案1】:

解决了,我误以为我没有给病人放药, "patient.setMedicines(patientBean.getMedicines());" 只需在我的代码中添加这个,我的代码就可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多