SpringCloud的DataRest(三)
一、进阶配置定义

二、定制显示内容和控制方法使用
1、控制显示的内容


如果想让输出显示的数据始终按我们定义的格式显示:

配置之后返回的JSON数据会按照ListApp定义的数据格式进行输出
2、屏蔽自动化方法
如:不允许使用默认的delete方法!!!

三、使用 DSL 定制查询
1、自定义查询

当创建Repository实现对象时,Spring Data检查Repository接口方法,解析方法名称,并基于被持久化对象来推测方法的目的。
Spring Data定义了一组领域特定语言(DSL),通过Repository方法的签名描述,Spring Data能知道这个方法要查找API_APP,因为我们用API_APP对JpaRepository进行了参数化。
方法名findByName确定该方法需要根据name属性相匹配来查找API_APP,而name是作为参数传递到方法中来的。
findByName()方法非常简单,Spring Data也能处理更加有意思的方法名称。
Repository方法是由一个动词、一个可选的主题(Subject)、关键词By以及一个断言所组成。
如:在findByName()这个样例中,动词是find,断言是name,主题并没有指定,暗含的主题是API_APP。
Spring Data允许在方法名中使用四种动词:get、read、find和count。
其中,动词get、read和find是同义的,这三个动词对应的Repository方法都会查询数据并返回对象。
而动词count则会返回匹配对象的数量,而不是对象本身。
在断言中,会有一个或多个限制结果的条件。每个条件必须引用一个属性,并且还可以指定一种比较操作。
如果省略比较操作符的话,那么这暗指是一种相等比较操作。
不过,我们也可以选择其他的比较操作,如:

2、大小写忽略查询
要处理String类型的属性时,如果需要忽略大小写则可以在方法签名中加入IgnoringCase,这样在
执行对比的时候就会不再考虑字符是大写还是小写。例如,要在name属性上忽略大小写,那么可以将方法签名改成如下的形式:
@RestResource(path="nameStartsWith",rel="nameStartsWith")
public List<User> findByNameStartsWithIgnoringCase(@Param("name") String name);
3、多条件查询
如果需要匹配多个添加则用And和Or连接,比如:
@RestResource(path="nameAndAge",rel="nameAndAge")
public List<User> findByNameAndAge(@Param("name")String name ,@Param("age")int age);
4、排序查询
可以在方法名称的结尾处添加OrderBy,实现结果集排序。比如可以按照User的Age降序排列
@RestResource(path="nameStartsWith",rel="nameStartsWith")
public List<User> findByNameStartsWithOrderByAgeDesc(@Param("name") String name);
这里初步体验了所能声明的方法种类,Spring Data JPA会为我们实现这些方法。现在,我们只需知道通过使用属性名和关键字构建Repository方法签名,就能让Spring Data JPA生成方法实现,完成几乎所有能够想象到的查询。
5、@QUERY查询
Spring Data这个小型的DSL依旧有其局限性,有时候通过方法名称表达预期的查询很烦琐,甚至无法实现。
如果遇到这种情形的话,Spring Data能够让我们通过@Query注解来解决问题。
SpringCloud的DataRest(三)的更多相关文章
- springcloud情操陶冶-springcloud config server(三)
承接前文springcloud情操陶冶-springcloud config server(二),本文就不讲述server了,就简单阐述下client的应用 前话 config server在引入的时 ...
- SpringCloud教程 | 第三篇: 服务消费者(Feign)
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务.一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Http ...
- SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. 一.Feign简介 Feign是一个声明式的伪Http客户端,它使得写Htt ...
- 【SpringCloud】第三篇: 服务消费者(Feign)
前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选. ...
- SpringCloud IDEA 教学 (三) Eureka Client
写在前头 本篇继续介绍基于Eureka的SpringCloud微服务搭建,回顾一下搭建过程, 第一步:建立一个服务注册中心: 第二步:建立微服务并注入到注册中心: 第三步:建立client端来访问微服 ...
- springcloud微服务总结三 服务客户端
一 springcloud服务理解: dubbo中服务注册和调用都是都过注解来进行的,dubbo中在service层中调用服务是通过将@service注解改变为dubbo代码架包中的service注解 ...
- 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)(Finchley版本)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f3-feign/ 本文出自方志朋的博客 上一篇文章,讲述了如 ...
- 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)
转载请标明出处: https://www.fangzhipeng.com/springcloud/2017/07/12/sc03-feign/ 本文出自方志朋的博客 最新Finchley版本请访问: ...
- SpringCloud的DataRest(四)restful特性展示
一.get - list - http://10.110.20.16:8391/BusiSys/company?page=0&size=5&sort=comp_id,asc 二.pos ...
随机推荐
- 巧用UserAgent来解决浏览器的各种问题
以前对UserAgent了解不是很透彻,今天发现UserAgent用处多多.比如我之前一直很喜欢用火狐浏览器,不过用了那么久发现火狐浏览器问题多多,比如有的论坛上传附件或者上传图片等按钮没有作用,并且 ...
- Python 从入门到入门基础练习十五题
**a) 6.成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于60的输出"pass",否则输出"fail",成绩不四舍五入. a = ...
- python爬微信公众号前10篇历史文章(2)-拼接URL&发送http请求
如何拼接想要的url http://weixin.sogou.com/weixin?type=1&page=1&ie=utf8&query=%E5%A4%A7%E7%BA%BD ...
- 什么是IPFS?(二)
IPFS的的"宏伟"目标是取代HTTP, 那么先来看看IPFS是如何工作的? IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内 ...
- Java爬虫爬取网站电影下载链接
之前有看过一段时间爬虫,了解了爬虫的原理,以及一些实现的方法,本项目完成于半年前,一直放在那里,现在和大家分享出来. 网络爬虫简单的原理就是把程序想象成为一个小虫子,一旦进去了一个大门,这个小虫子就像 ...
- 学习资料分享(Java第一行代码视频)<susmote.com>
17年买了一本书,第一行代码(JAVA),李兴华编写的. 一开始我是按照书本一页一页的啃,一个点一个点的去学,虽然当时学的有些枯燥,但里面的知识点大部分还是弄的懂,只是一次偶然,因为有点质疑书上写的( ...
- oracle相同SID对外提供多个service_names
为数据库设置多个服务名(通过SCOPE=both设置,同时修改参数文件) SQL> show parameter service_names; NAME TYPE VALUE --------- ...
- 文献管理工具的使用(Mendeley和Endnote)
以前是Mendeley的忠诚用户,但是最近在linux平台下出现的bug使我非常崩溃,之前辛辛苦苦整理的文献和分组,分分钟灰飞烟灭.所以希望能转用一个至少比较稳定的文献管理软件.刚好手头上有Mac版的 ...
- 从零部署Spring boot项目到云服务器(正式部署)
上一篇文章总结了在Linux云服务器上部署Spring Boot项目的准备过程,包括环境的安装配置,项目的打包上传等. 链接在这里:http://www.cnblogs.com/Lovebugs/p/ ...
- 第二次作业:软件分析之Steam的前世今生
摘要:本次作业我将介绍一下Steam的相关内容,以及对Steam的相关调研测评,以及需求分析,最后就是对Steam的建议以及在中国的发展提出相应的建议 一.相关信息 Steam是一个整合游戏 ...