繁体   English   中英

DELTE HTTP 方法不适用于 Spring 数据休息模块

[英]DELTE HTTP method is not working with Spring data rest module

我有一个启动应用程序

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.8.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

我有一个存储库,我没有控制器来利用 Spring Data Rest Moduel。 我正在使用 SPRING DATA REST 公开 HTTP 方法

public interface PUCCRepository extends CrudRepository<PUCCertificate, Long> {

    @Transactional
    Long deleteByVehicleNo(@RequestParam("vehicleNo") String vehicleNo);
   
}

现在我正在尝试从 UI(Angular)发出删除请求。 当我对 deleteByVechicleNo 执行GET请求时,它会删除记录,但在我执行DELETE请求时它不会删除记录。

我附上了成功和失败的场景供您参考。

获取请求在此处输入图像描述

删除请求在此处输入图像描述

这是因为您在存储库上定义的任何额外方法默认都被视为搜索操作(意味着只读)。

https://docs.spring.io/spring-data/rest/docs/current/reference/html/#repository-resources.search-resource

要添加自定义行为,您必须实现一个使用 @RepositoryRestController 注释的 MVC 控制器,您可以在其中定义您喜欢的任何额外操作。

您可以在此处阅读有关此方法的更多信息: https ://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.overriding-sdr-response-handlers

您可能还想用@RestResource(exported = false)注释您的存储库方法,这样它就不会作为搜索操作被拾取。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM