Java Spring boot基于OneToOne关系从数据库中删除对象
我有一个“约会”实体对象(表)和日期\u医生\u可用的实体构建,如下所示Java Spring boot基于OneToOne关系从数据库中删除对象,java,spring,spring-boot,hibernate,spring-data-jpa,Java,Spring,Spring Boot,Hibernate,Spring Data Jpa,我有一个“约会”实体对象(表)和日期\u医生\u可用的实体构建,如下所示 @Entity public class Appointment { ..... @OneToOne @JoinColumn(name = "date_time_available_fk", nullable=true) private DatesDoctorAvailable datesDoctorAvailable; ...... 及 现在,我希望从控制器中使用“约会”对象删除基于“日期\
@Entity
public class Appointment {
.....
@OneToOne
@JoinColumn(name = "date_time_available_fk", nullable=true)
private DatesDoctorAvailable datesDoctorAvailable;
......
及
现在,我希望从控制器中使用“约会”对象删除基于“日期\时间\可用时间\ fk”的数据库条目。比如说
@RequestMapping(value="/show/scheduled/{id}" ,method = RequestMethod.GET)
public String gettAppointmentDel(Model model, @PathVariable String id, Principal
principal,
@ModelAttribute("appointment") Appointment appointment,
@ModelAttribute("datess.dateID")
DatesDoctorAvailable datesDoctoravailable) {
......
//this part below i want to make it work
appointmentService.deleteByDatesDoctorAvailable(
appointment.getDatesDoctorAvailable(
datesDoctorAvailableService.findByDateID(Long.parseLong(id))));
.....
}
在服务内部有这样的数据对象访问(它们是接口)
其中id是我想要传递给约会对象的日期\时间\可用\ fk号码(我已经从thymeleaf获得了该号码)
如果发生这种情况,我希望避免使用@Query
更新
事实上,我已经弄明白了,我会在早上为未来的麻烦者提供解决方案。解决方案 如我所说,我无法从上面的数据库中获取对象信息,以便在以后删除它,所以我这样做了(创建了新对象约会) 这样我可以检索信息,然后像这样删除它
appointmentService.deleteScheduleById(appointmentFind.getId());
从url请求映射获取id后
@RequestMapping(value="/show/scheduled/{id}" ,method =
RequestMethod.GET)
public String getAppointmentDel(Model model, @PathVariable String id,
Principal principal, @ModelAttribute("appointment") Appointment
appointment, @ModelAttribute("datess.dateID") DatesDoctorAvailable
datesDoctoravailable) {
---------------内视图------------
---道:-----
---服务:---
---道:-----
Appointment appointmentFind =
appointmentService.findByDatesDoctorAvailable(
datesDoctorAvailableService.findByDateID(Long.parseLong(id)));
appointmentService.deleteScheduleById(appointmentFind.getId());
@RequestMapping(value="/show/scheduled/{id}" ,method =
RequestMethod.GET)
public String getAppointmentDel(Model model, @PathVariable String id,
Principal principal, @ModelAttribute("appointment") Appointment
appointment, @ModelAttribute("datess.dateID") DatesDoctorAvailable
datesDoctoravailable) {
<td><button type="button"
th:onclick=
"|window.location.href='/appointment/show/scheduled/${datess.dateID}'|"
th-text="(id1=${datess.dateID})" class="btn btn-danger btn-xs">
Cancel it
</button></td>
@Override
public Appointment findByDatesDoctorAvailable(DatesDoctorAvailable
datesDoctorAvailable) {
return
appointmentDao.findByDatesDoctorAvailable(datesDoctorAvailable);
}
Appointment findByDatesDoctorAvailable(DatesDoctorAvailable
datesDoctorAvailable);
void deleteScheduleById(@Param("id") Long id);
@Override
public void deleteScheduleById(Long id) {
appointmentDao.deleteScheduleById(id);
}
@Modifying
@Transactional
@Query("delete from Appointment where id = :id")
void deleteScheduleById(@Param("id") Long id);