Java Spring boot基于OneToOne关系从数据库中删除对象

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; ...... 及 现在,我希望从控制器中使用“约会”对象删除基于“日期\

我有一个“约会”实体对象(表)和日期\u医生\u可用的实体构建,如下所示

@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);