gpt4 book ai didi

java - 为什么我的 h2 数据库找不到医生和患者 ID?

转载 作者:行者123 更新时间:2023-12-01 17:16:31 25 4
gpt4 key购买 nike

所以,我一直在使用 thymeleaf、spring 和 h2 数据库在 java 上创建一个医院系统。我有一个函数应该插入与之前进行的医生和患者的新预约,但我的 h2 数据库没有显示他们的 ID,它只是显示 null。

这是 Controller 中的函数


@PostMapping(value="/insertNewAppointment")
public String insertNewAppointmentPost(Appointment appointment, Patient patient, Doctor doctor)
{

System.out.println(patient.getName());
System.out.println(patient.getSurname());
System.out.println(doctor.getName());
System.out.println(doctor.getSurname());
System.out.println();
Patient newPatient = patientRepo.findByNameAndSurname (patient.getName(), patient.getSurname());
System.out.println(patient);


Doctor newDoctor = doctorRepo.findByNameAndSurname (doctor.getName(), doctor.getSurname());
System.out.println(doctor);

Appointment newAppointment = new Appointment(appointment.getTime(), newPatient, newDoctor);
appointmentRepo.save(newAppointment);







return "redirect:/showAllDoctors";
}

这是类(class)

病人

@Entity
@Table (name = "PatientTable")
public class Patient {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_P")
private int id_P;

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

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

@Column(name = "isHospitalised")
private boolean isHospitalised;

@OneToMany (mappedBy = "patient")
private Collection<Appointment> allAppointmentsP;




@OneToOne
@JoinColumn (name = "u_ID")
private User user;

医生

@Entity
@Table (name = "DoctorTable")
public class Doctor {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_D")
private int id_D;

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

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

@Column(name = "officeNumber")
private short officeNum;

@OneToOne
@JoinColumn (name = "id_U")
private User user;


@OneToMany (mappedBy = "doctor")
private Collection<Appointment> allAppointmentsD;

预约

@Entity
@Table (name = "AppointmentTable")
public class Appointment {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "app_ID")
private int app_ID;

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

@Cascade(value = { CascadeType.ALL })
@ManyToOne
@JoinColumn (name = "id_P")
private Patient patient;

@Cascade(value = { CascadeType.ALL })
@ManyToOne
@JoinColumn (name = "id_D")
private Doctor doctor;

Doctor and Patient 仓库仅包含此行

Doctor findByNameAndSurname(String name, String surname);

和 insertnewappointment html 文件

<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<body>
<h2>Add a new appointment</h2>

<form action="#" th:action = "@{/insertNewAppointment}" th:object = "${appointment}" method = "post">

Time (DD-MMM-YYYY HH:mm)
<input type = "text" th:field = "*{time}" /> <br>

Patient Name
<input type = "text" th:field = "*{patient.name}" /> <br>
Patient Surname
<input type = "text" th:field = "*{patient.surname}" /> <br>
Doctor Name
<input type = "text" th:field = "*{doctor.name}" /> <br>
Doctor Surname
<input type = "text" th:field = "*{doctor.surname}" /> <br>


<input type = "submit" value = "Add new appointment" />


</form>

</body>
</html>
I posted the lines i got in repos. This is the function that loads the data in, with this everything is alright, the id show up as they should on the h2 database. ```@GetMapping(value="/testingData")
public String testing()
{
User u1 = new User("Janis", "123");
User u2 = new User("Juris", "321");
User u3 = new User("Jana", "jana123");
User u4 = new User("Peteris", "peteris123");
User u5 = new User("Matiss", "134");
User u6 = new User("Jana", "JanA");

userRepo.save(u1);
userRepo.save(u2);
userRepo.save(u3);
userRepo.save(u4);
userRepo.save(u5);
userRepo.save(u6);

Patient p1 = new Patient("Janis", "Berzins", true, u1);
Patient p2 = new Patient("Juris", "Kalnins", true, u2);
Patient p3 = new Patient("Jana", "Jauka", true, u3);

patientRepo.save(p1);
patientRepo.save(p2);
patientRepo.save(p3);

Doctor d1 = new Doctor("Peteris", "Krumins", (short) 101, u4);
Doctor d2 = new Doctor("Matiss", "Ozolins", (short) 102, u5);
Doctor d3 = new Doctor("Liene", "Karklina", (short)103, u6);

doctorRepo.save(d1);
doctorRepo.save(d2);
doctorRepo.save(d3);

Appointment a1 = new Appointment("26-JUN-2019 13:30", p2, d1);
Appointment a2 = new Appointment("30-JUN-2019 10:15", p1, d3);
Appointment a3 = new Appointment("02-JUL-2019 15:45", p3, d2);

appointmentRepo.save(a1);
appointmentRepo.save(a2);
appointmentRepo.save(a3);


return "ok";```

最佳答案

尝试将id的类型更改为long@GenerateValue(strategy = GenerationType.SEQUENCE

关于java - 为什么我的 h2 数据库找不到医生和患者 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com