本文小编为大家详细介绍“springdatajpa怎么创建方法名进行简单查询”,内容详细,步骤清晰,细节处理妥当,希望这篇“springdatajpa怎么创建方法名进行简单查询”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。spring data jpa 可以通过在接口中按照规定语法创建一个方法进行查询,spring data jpa 基础接口中,如CrudRepository中findOne,save,delete等,那么我们自己怎么按照需要创建一个方法进行查询呢?声明一个接口继承于CrudRepository 或者 PagingAndSortingRepository,JpaRepository,Repository或者利用注释的方式表名继承于JpaRepository,例如下面这俩种是等价的继承CrudRepository 或者 PagingAndSortingRepository,JpaRepository会抽出一些常用的方法,如果你spring data jpa帮你自定义那么多方法,你可以继承于JpaRepository,然后复制一些方法到你的接口中,可以选择性的要一些方法一般按照java驼峰式书写规范加一些特定关键字,例如我们想通过任务名来获取任务实体类列表利用属性获取任务列表利用and 和 or来获取任务列表利用Pageable ,Sort,Slice获取分页的任务列表和排序利用Di免费云主机域名stinct去重利用OrderBy进行排序利用 Top 和 First来获取限制数据那么spring data jpa是怎么通过这些规范来进行组装成查询语句呢?Spring Data JPA框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。假如创建如下的查询:findByTaskProjectName(),框架在解析该方法时,首先剔除 findBy,然后对剩下的属性进行解析,假设查询实体为Doc先判断 taskProjectName (根据 POJO 规范,首字母变为小写)是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步;从右往左截取第一个大写字母开头的字符串此处为Name),然后检查剩下的字符串是否为查询实体的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,则重复第二步,继续从右往左截取;最后假设task为查询实体Person的一个属性;接着处理剩下部分(ProjectName),先判断 task 所对应的类型是否有projectName属性,如果有,则表示该方法最终是根据 “ Person.task.projectName”的取值进行查询;否则继续按照步骤 2 的规则从右往左截取,最终表示根据 “Person.task.project.name” 的值进行查询。可能会存在一种特殊情况,比如 Person包含一个 task 的属性,也有一个 projectName 属性,此时会存在混淆。可以明确在属性之间加上 “_” 以显式表达意图,比如 “findByTask_ProjectName()”这里以实体为User,有firstName和lastName,age读到这里,这篇“springdatajpa怎么创建方法名进行简单查询”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。
本篇内容介绍了“HTML5新元素属性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! canvas 新元素 canvas标签定义图形,比如图表和其他…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。