Hibernate застрял на одной записи данных - PullRequest
0 голосов
/ 14 сентября 2018

Я создаю приложение управления больницей (с использованием весенней загрузки, hibernate и mySql), при попытке добавить встречу для пациента, hibernate создает только одну запись, а затем продолжает обновлять ее, вместо добавления новой,Вот моя сущность Посещения:

@Entity
@Table(name = "visits", uniqueConstraints = {@UniqueConstraint(columnNames = {"date", "doctor_id"})})
public class DoctorVisit {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Enumerated(EnumType.STRING)
    private Cause cause;

    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
    private LocalDateTime date = LocalDateTime.now();

    @Enumerated(EnumType.STRING)
    private Status status;
    private String diagnosis;
    private String prescription;
    private  String referalls;
    @ManyToOne
    private Patient patient;
    @ManyToOne
    private Doctor doctor;

Вот контроллеры, сначала получает параметры запроса для пациента и специальности доктора и создает новый экземпляр DoctorVisit:

@GetMapping("/add")
    public String add(@RequestParam String spec,@RequestParam Long id, Model model){
        List<Doctor> doctors =  doctorRepository.getAllBySpeciality(spec);
        Patient patient = patientRepositoryt.findOne(id);

        model.addAttribute("visit", new DoctorVisit());
        model.addAttribute("doctors", doctors);
        model.addAttribute("spec", spec);
        model.addAttribute("patient", patient);
        return "visitForm";
    }

Он передаетатрибуты для этой jsp связанной формы:

<form:form modelAttribute="visit" method="POST" >
    <form:input path="patient.id" value="${patient.id}" readonly="true"/>
    ${spec}:<form:select path="doctor" multiple="false">
    <c:forEach var="doctor" items="${doctors}">
        <form:option value="${doctor}" label="${doctor.surname}"/>
    </c:forEach>
</form:select>

    Date and time:<form:input id="timePicker" path="date"/>
    Cause: <form:select path="cause" multiple="false">
    <c:forEach var="cause" items="${causes}">
        <form:option value="${cause}" label="${cause.description}"/>
    </c:forEach>
</form:select>
    <input type="submit" value="Submit"/>
</form:form>

И затем он отправляет продукт на этот контроллер:

 @PostMapping("/add")
    @ResponseBody
    public String save(@Valid  DoctorVisit visit){
      visitRepository.save(visit);
      return "success";


    }

Почему он не создает новую запись базы данных?Кажется, он застрял на первой записи и не может создать новую, только обновить последнюю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...