Невозможно найти столбец с логическим именем: yard_id в org.hibernate.mapping.Table (test.patients) и связанных с ним супертаблицах и вторичных таблицах. - PullRequest
0 голосов
/ 16 октября 2019

Невозможно найти столбец с логическим именем: 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;
...