如何获得crud的delete方法来处理spring项目

h79rfbju  于 2021-07-14  发布在  Java
关注(0)|答案(2)|浏览(383)

在基于spring的项目中处理crud delete方法有一些困难。不断出现404错误。由于我是一个编程新手,我不能自己解决这个问题。我试图在各种youtube指南和文章上寻找一些解决方案,试图重新写作,但没有任何帮助。非常感谢任何能帮我的人。附加了处理crud的delete方法的部分代码:
服务:

public void deleteVisit(Long id) {
    repository.delete(id);
}

控制器:

@DeleteMapping("delete-appointment/{id}")
public void deleteAppointment(@PathVariable Long id) {
    dentistVisitRepository.delete(id);
}

胸腺嘧啶核苷:

<td><a th:href="@{delete-appointment/{id}(id=${appointment.id})}">Delete</a></td>
fdbelqdn

fdbelqdn1#

在控制器中,您需要调用服务

@DeleteMapping("delete-appointment/{id}")
public String deleteAppointment(@PathVariable Long id) {

    //You might have to first find it before deletion to ensure there are no errors
    appointmentService.deleteVisit(id);
    return "Deleted";
}

在服务中,从存储库调用deletebyid

public void deleteVisit(Long id) {
    repository.deleteById(id);
}

锚标记使用的默认http方法是get。您需要创建一个表单才能更改http方法

<form action="#" th:action="@{delete-appointment/{id}'(id=${appointment.id})}" th:method="delete" >
  <input type="hidden" name="_method" value="delete" />
  <button type="submit" id="submitButton"> </button>
</form>
h6my8fg2

h6my8fg22#

此代码接受对象参数 repository.delete(Entity) 但是这个代码需要很长的参数使用这个代码来删除id

public void deleteVisit(Long id) {
    repository.deleteById(id);
}

如果要按实体删除,可以使用此代码

public void deleteVisit(Long id) {
   Entity entity=repository.findById(id).get();
    repository.delete(entity);
}

相关问题