gpt4 book ai didi

Spring Data Rest自定义 Controller

转载 作者:行者123 更新时间:2023-12-04 08:46:25 24 4
gpt4 key购买 nike

我有要求在哪里需要使用自定义 Controller 覆盖其余资源的删除功能。这是restResource的代码

@RepositoryRestResource
public interface SampleRepository extends JpaRepository<Sample,Long>{
List<Sample> findBySampleNumber(@Param("sampleNumber") String sampleNumber);
}

我创建了一个自定义 Controller ,该 Controller 仅覆盖删除功能
@RepositoryRestController
@RequestMapping("/api/samples")
public class SampleController{
@Autowired
SampleRepository sampleRepository;

@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
@ResponseBody
public void delete(@PathVariable Long id) {
//do some custom logic here
//then delete the sample
//sampleRepository.delete(id);

}

但是,如果现在尝试制作 GET api/samples/1(someId)或在RepositoryRestResource上查找某些搜索功能,则会看到以下错误
"description": "Request method 'GET' not supported"
有没有办法只覆盖一个HTTP动词,其余的功能就来自存储库。

但是,如果我从 Controller 中评论 public void delete,我就可以访问所有的crud和Search操作

有没有人遇到过这样的问题

我正在使用 SPRING_DATA_REST-2.5.1-Release

最佳答案

您需要将 Controller 定义为

@RepositoryRestController
public class SampleController{
@Autowired
SampleRepository sampleRepository;

@RequestMapping(value = "/api/samples/{id}", method = RequestMethod.DELETE)
public void delete(@PathVariable Long id) {

}

Spring数据还提供了在域创建,保存和删除之前和之后执行的不同事件。

请参阅 http://docs.spring.io/spring-data/rest/docs/current/reference/html/#events

关于Spring Data Rest自定义 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37079916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com