Невозможно найти столбец с логическим именем: yard_id в org.hibernate.mapping.Table (test.patients) и связанных с ним супертаблицах и вторичных таблицах
PatientsContacts.java
@Entity
@Table(name="patients_contacts" , catalog = "test")
public class PatientsContacts implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="patient_id")
private Integer patient_id;
private String ph_num;
public PatientsContacts()
{
}
@OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "patient_id", referencedColumnName = "id")
private Patients patients;
public Patients getPatients() {
return patients;
}
public void setPatients(Patients patients) {
this.patients = patients;
}
public Integer getPatient_id() {
return patient_id;
}
public void setPatient_id(Integer patient_id) {
this.patient_id = patient_id;
}
public String getPh_num() {
return ph_num;
}
public void setPh_num(String ph_num) {
this.ph_num = ph_num;
}
}
Patients.java
@Entity
@Table(name="patients" , catalog = "test")
public class Patients implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "pname")
private String name;
@Column(name = "age")
private Integer age;
@Column(name = "loc")
private String location;
public Patients()
{
}
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "id", referencedColumnName = "pati_id")
private List<Disease> disease;
public List<Disease> getDisease() {
return disease;
}
public void setDisease(List<Disease> disease) {
this.disease = disease;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
Disese.java
@Entity
@Table(name="disease", catalog = "test")
public class Disease implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "disease_id")
private Integer id;
@Column(name = "disease_name")
private String dName;
@Column(name = "pati_id")
private Integer patientId;
public Disease() {
}
public String getdName() {
return dName;
}
public void setdName(String dName) {
this.dName = dName;
}
public Integer getPatientId() {
return patientId;
}
public void setPatientId(Integer patientId) {
this.patientId = patientId;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
PatientsContactsController.java
@RestController
@RequestMapping("/contacts")
public class PatientsContactsController {
@Autowired
private PatientsContactsRepo repo;
@GetMapping("/fetchall")
public List<PatientsContacts> findAll()
{
return repo.findAll();
}
@GetMapping("/update/{name}")
public List<PatientsContacts> update(@PathVariable("name") final String name)
{
PatientsContacts contacts=new PatientsContacts();
Patients patients=new Patients();
Disease disease=new Disease();
disease.setdName("fever");
Disease disease1=new Disease();
disease1.setdName("HeadAche");
patients.setAge(22);
patients.setLocation("Mumbai");
patients.setName(name);
patients.setDisease(Arrays.asList(disease,disease1));
contacts.setPh_num("965205432");
contacts.setPatients(patients);
repo.save(contacts);
return repo.findAll();
}
}
Я хочу построить отношения OneToMany между таблицей Patient и таблицей Disease, используя id и pati_id
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "id", referencedColumnName = "pati_id")
private List<Disease> disease;