ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-调用spring数据其余存储库方法不会返回链接

2019-10-11 20:28:54  阅读:191  来源: 互联网

标签:java spring spring-data-rest spring-hateoas


我有存储库“ ClientRepository”:

public interface ClientRepository extends PagingAndSortingRepository<Client, Long> {
}

当我请求http://localhost:8080/clients/1时,服务器响应

{
  "algorithmId" : 1,
  "lastNameTxt" : "***",
  "firstNameTxt" : "**",
  "middleNameTxt" : "**",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/clients/1121495168"
    },
    "client" : {
      "href" : "http://localhost:8080/clients/1121495168"
    }
  }
}

响应具有预期的链接.

当我在另一个控制器中调用存储库继承的方法findOne时

@RestController
public class SearchRestController {

    @Autowired
        public SearchRestController(ClientRepository clientRepository) {
            this.clientRepository = clientRepository;
    }

    @RequestMapping(value = "/search", method = RequestMethod.GET)
        Client readAgreement(@RequestParam(value = "query") String query,
                @RequestParam(value = "category") String category) {
    return clientRepository.findOne(Long.parseLong(query));
    }
}

它回应

{
      "algorithmId" : 1,
      "lastNameTxt" : "***",
      "firstNameTxt" : "**",
      "middleNameTxt" : "**"
}

为什么在第二种情况下响应不包含链接?如何使Spring添加他们的响应?

解决方法:

HATEOAS功能仅适用于带有@RepositoryRestResource注释的Spring数据jpa存储库.这将自动公开其余端点并添加链接.

在控制器中使用存储库时,只需获取对象,杰克逊映射器便将其映射到json.

如果您想在使用Spring MVC控制器时添加链接,请查看here

标签:java,spring,spring-data-rest,spring-hateoas
来源: https://codeday.me/bug/20191011/1895414.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有