- 浏览: 591525 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (423)
- windows2003 (1)
- exception (3)
- java (91)
- eclipse (14)
- java web (3)
- javaScript (11)
- 装机 (1)
- sql (34)
- outlook (1)
- html (8)
- JAVA 不同区域服务器引起的乱码解决 (2)
- strtus (3)
- http (1)
- 设计模式 (4)
- Java对存储过程的调用方法 (0)
- java-数据库操作 (0)
- jdbc (7)
- dwr (2)
- 软件版本号 (1)
- jxls (1)
- ExtJS (3)
- Ajax (1)
- git (12)
- linux (20)
- mysql (14)
- maven (16)
- easyui (1)
- 日常备注 (1)
- spring (9)
- others (1)
- windows快捷键 (1)
- 工作备注 (9)
- 工作杂项 (0)
- photoshop (1)
- 开发环境配置 (0)
- jboss (1)
- 报表 (1)
- 图表 (1)
- fckeditor (1)
- 调试bug (2)
- 口令 (1)
- css (2)
- mongodb (7)
- restful (1)
- jsp (5)
- jpa (2)
- bug (1)
- js (2)
- Json (1)
- POI (1)
- xml (2)
- webstorm (1)
- java swing (1)
- ubuntu (3)
- mongo (27)
- 自我学习 (0)
- 草稿 (0)
- 单元测试 (1)
- 数据库 (2)
- ide (1)
- 大数据 (0)
- uml (1)
- spring-boot (1)
- mybatis (3)
- oracle (2)
- jetty (1)
- 学习 (0)
- 系统调优 (1)
- tomcat (2)
- kettle (1)
- 学习资源 (1)
- 架构 (2)
- database (4)
- idea (1)
- consul (1)
- hadoop (2)
- nginx (3)
- 认证 (1)
- 加密 (1)
- connection pool (1)
- loadrunner (1)
- tps (1)
- 翻墙工具 (1)
- redis (2)
- redis jedis shardjedis (1)
- spring boot (1)
- 认证授权 (1)
- ssh (1)
- svn (2)
- 多线程 (1)
最新评论
-
abcdeudi:
不错
接口和抽象类什么时候使用才合适? -
羽翼的心动:
POI中对Word处理,读取不到书签。如果要处理书签的话,就只 ...
POI根据模板(excel表头)导出excel -
pdf1192012:
高质量文章
接口和抽象类什么时候使用才合适? -
沐忆潼:
...
POI根据模板(excel表头)导出excel -
422937561:
高质量文章
接口和抽象类什么时候使用才合适?
http://my.oschina.net/xdev/blog/126049非常好
http://wenku.baidu.com/link?url=oHcFoWe1rzconY2i9fYiyL6kypHA6EgJh56FQ6gBT7xPezSzJfb6axmufqnhMRIAO3I9N2o7uSW0XXz0fb-W79XrgYd4X22irVT0rylJHsu
http://wenku.baidu.com/link?url=oHcFoWe1rzconY2i9fYiyL6kypHA6EgJh56FQ6gBT7xPezSzJfb6axmufqnhMRIAO3I9N2o7uSW0XXz0fb-W79XrgYd4X22irVT0rylJHsu
http://blog.csdn.net/itpinpai/article/details/8247728
http://www.cnblogs.com/xiaoluo501395377/p/3383130.html
http://bbs.csdn.net/topics/390346645
http://bbs.csdn.net/topics/390346645
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/
通过解析方法名创建查询
通过前面的例子,读者基本上对解析方法名创建查询的方式有了一个大致的了解,这也是 Spring Data JPA 吸引开发者的一个很重要的因素。该功能其实并非 Spring Data JPA 首创,而是源自一个开源的 JPA 框架 Hades,该框架的作者 Oliver Gierke 本身又是 Spring Data JPA 项目的 Leader,所以把 Hades 的优势引入到 Spring Data JPA 也就是顺理成章的了。
框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。并且如果方法的最后一个参数是 Sort 或者 Pageable 类型,也会提取相关的信息,以便按规则进行排序或者分页查询。
在创建查询时,我们通过在方法名中使用属性名称来表达,比如 findByUserAddressZip ()。框架在解析该方法时,首先剔除 findBy,然后对剩下的属性进行解析,详细规则如下(此处假设该方法针对的域对象为 AccountInfo 类型):
先判断 userAddressZip (根据 POJO 规范,首字母变为小写,下同)是否为 AccountInfo 的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步;
从右往左截取第一个大写字母开头的字符串(此处为 Zip),然后检查剩下的字符串是否为 AccountInfo 的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,则重复第二步,继续从右往左截取;最后假设 user 为 AccountInfo 的一个属性;
接着处理剩下部分( AddressZip ),先判断 user 所对应的类型是否有 addressZip 属性,如果有,则表示该方法最终是根据 "AccountInfo.user.addressZip" 的取值进行查询;否则继续按照步骤 2 的规则从右往左截取,最终表示根据 "AccountInfo.user.address.zip" 的值进行查询。
可能会存在一种特殊情况,比如 AccountInfo 包含一个 user 的属性,也有一个 userAddress 属性,此时会存在混淆。读者可以明确在属性之间加上 "_" 以显式表达意图,比如 "findByUser_AddressZip()" 或者 "findByUserAddress_Zip()"。
http://www.tuicool.com/articles/uyYZraF
http://wenku.baidu.com/link?url=oHcFoWe1rzconY2i9fYiyL6kypHA6EgJh56FQ6gBT7xPezSzJfb6axmufqnhMRIAO3I9N2o7uSW0XXz0fb-W79XrgYd4X22irVT0rylJHsu
http://wenku.baidu.com/link?url=oHcFoWe1rzconY2i9fYiyL6kypHA6EgJh56FQ6gBT7xPezSzJfb6axmufqnhMRIAO3I9N2o7uSW0XXz0fb-W79XrgYd4X22irVT0rylJHsu
http://blog.csdn.net/itpinpai/article/details/8247728
http://www.cnblogs.com/xiaoluo501395377/p/3383130.html
http://bbs.csdn.net/topics/390346645
http://bbs.csdn.net/topics/390346645
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/
通过解析方法名创建查询
通过前面的例子,读者基本上对解析方法名创建查询的方式有了一个大致的了解,这也是 Spring Data JPA 吸引开发者的一个很重要的因素。该功能其实并非 Spring Data JPA 首创,而是源自一个开源的 JPA 框架 Hades,该框架的作者 Oliver Gierke 本身又是 Spring Data JPA 项目的 Leader,所以把 Hades 的优势引入到 Spring Data JPA 也就是顺理成章的了。
框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find、findBy、read、readBy、get、getBy,然后对剩下部分进行解析。并且如果方法的最后一个参数是 Sort 或者 Pageable 类型,也会提取相关的信息,以便按规则进行排序或者分页查询。
在创建查询时,我们通过在方法名中使用属性名称来表达,比如 findByUserAddressZip ()。框架在解析该方法时,首先剔除 findBy,然后对剩下的属性进行解析,详细规则如下(此处假设该方法针对的域对象为 AccountInfo 类型):
先判断 userAddressZip (根据 POJO 规范,首字母变为小写,下同)是否为 AccountInfo 的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,继续第二步;
从右往左截取第一个大写字母开头的字符串(此处为 Zip),然后检查剩下的字符串是否为 AccountInfo 的一个属性,如果是,则表示根据该属性进行查询;如果没有该属性,则重复第二步,继续从右往左截取;最后假设 user 为 AccountInfo 的一个属性;
接着处理剩下部分( AddressZip ),先判断 user 所对应的类型是否有 addressZip 属性,如果有,则表示该方法最终是根据 "AccountInfo.user.addressZip" 的取值进行查询;否则继续按照步骤 2 的规则从右往左截取,最终表示根据 "AccountInfo.user.address.zip" 的值进行查询。
可能会存在一种特殊情况,比如 AccountInfo 包含一个 user 的属性,也有一个 userAddress 属性,此时会存在混淆。读者可以明确在属性之间加上 "_" 以显式表达意图,比如 "findByUser_AddressZip()" 或者 "findByUserAddress_Zip()"。
http://www.tuicool.com/articles/uyYZraF
发表评论
-
文件上传
2017-02-05 09:47 421文件上传模块 -
@ModelAttribute注解的使用
2017-01-09 23:13 560https://my.oschina.net/u/176085 ... -
数组合并和判断数组包含某个元素
2017-01-09 23:10 550http://www.iteye.com/news/28296 ... -
项目创建流程
2017-01-09 23:06 415http://lion.newtouch.com/pages/ ... -
mysql 出现很多连接 sleep 问题
2017-01-09 23:00 726http://blog.csdn.net/lin_credib ... -
spring boot 学习
2016-11-28 17:05 392http://412887952-qq-com.iteye.c ... -
jxls excel上传数据
2016-11-22 15:27 562http://jxls.sourceforge.net/ref ... -
veloctiyengine gettemplate jsonobject.fromobject
2016-11-18 10:41 0/** 53. * test User 54. ... -
HDFS客户端的权限错误:Permission denied
2016-08-09 01:55 641http://www.linuxidc.com/Linux/2 ... -
java map中的key为object
2016-08-08 11:18 544http://zhidao.baidu.com/link?ur ... -
jdbc pool
2016-07-26 14:50 419[url]C:\Users\lwx328240\Desktop ... -
java 域是指什么
2016-07-15 15:36 558http://blog.csdn.net/iaiti/arti ... -
java jdbc/ojdbc 链接oracle的三种方式
2016-07-12 14:50 590http://blog.itpub.net/22664653/ ... -
java 编译器 解释器
2016-06-28 14:45 7250) javac 编译器 用于将java源代码文件编译成字节码 ... -
linux查看cpu、内存、版本信息
2016-06-24 21:44 551http://blog.chinaunix.net/uid-2 ... -
重定向控制台System.out.println输出到文件,再重定向回控制台
2016-06-24 20:18 518http://blog.csdn.net/jason_deng ... -
java 代码点 代码单元
2016-06-24 09:38 733http://blog.csdn.net/weizhaozhe ... -
java 日期
2016-06-24 09:39 358http://kingquake21.iteye.com/bl ... -
jdbc addBatch
2016-06-23 22:08 414http://www.360sdn.com/java/2014 ... -
java中的arrayList(动态数组)与静态数组
2016-06-21 20:26 959http://www.2cto.com/kf/201206/1 ...
相关推荐
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
**Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...
Spring Data JPA 是一个强大的框架,它简化了Java应用程序与数据库之间的交互,是Spring生态中的重要组成部分。通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于...
"spring data jpa官方文档中文翻译"则提供了Spring Data JPA的详细指南,包括其设计原理、基本概念、使用方法和最佳实践。"JPA2.0官方文档"则深入讲解了JPA规范的各个方面,包括实体管理、查询、事务和并发控制等。 ...
Spring Data JPA原理.pptx
赠送jar包:spring-data-jpa-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-jpa-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-jpa-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-data-jpa...
Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...
│ 01 Spring Data JPA 初识.mp4 │ 02 Spring Data Common 之 Repoitory 如何全面掌握?.mp4 │ 04 如何利用 Repoitory 中的方法返回值解决实际问题?.mp4 │ 05 @Query 解决了什么问题?什么时候应该选择它?....
### Spring-data-jpa 的核心知识点解析 #### 一、Spring-data-jpa 基本介绍 Spring-data-jpa 是 Spring 家族中的一个重要成员,它主要用于简化基于 Java Persistence API (JPA) 的数据访问层(DAO)的开发工作。...
spring data jpa最新版本1.8.0,包含了spring-data-jpa-1.8.0.RELEASE.jar,spring-data-jpa-1.8.0.RELEASE-javadoc.jar以及 spring-data-jpa-1.8.0.RELEASE-sources.jar文档和源代码
这是整合SpringMVC+Spring+SpringDataJPA+Hibernate简单的实现登录的功能,用的是mysql数据库,这是一个web Project 如果你用的是JavaEE6那么你要注意bean-validator.jar和weld-osgi-bundle.jar与slf4j的jar包冲突。...
**Spring Data JPA 深度解析** Spring Data JPA 是 Spring Framework 的一个重要模块,它为 Java Persistence API (JPA) 提供了便捷的数据访问层。这个框架简化了数据库操作,使得开发人员能够以声明式的方式处理...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
Spring Data JPA 是一个基于 Java 的开源框架,它属于 Spring Data 家族的一部分,旨在简化 Java 应用中的数据访问层代码,特别针对基于 JPA(Java Persistence API)的数据持久化操作。本教程将详细介绍 Spring ...
Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...
Spring Data JPA 是一个强大的框架,它简化了与Java Persistence API (JPA) 的交互,JPA 是Java 开发者用来管理和持久化应用程序数据的一种标准。在这个“Spring Data JPA Demo”项目中,我们将深入探讨如何利用...
Spring Data JPA是Spring框架的一部分,它是一种简便的数据访问层(Repository)的实现技术,主要用来简化JPA(Java Persistence API)实体数据访问代码的编写。Spring Data JPA允许开发者通过简单的接口和注解配置...
**Spring Data JPA 简单案例** ...- **源码**:指 Spring Data JPA 的源代码,可以帮助开发者理解其实现原理和工作流程。 - **工具**:Spring Data JPA 可以视为开发中的工具,简化了数据访问层的编码工作。
Spring MVC、Spring 和 Spring Data JPA 是 Java 开发中非常重要的三个框架,它们共同构建了一个强大的企业级应用开发环境。Spring MVC 是一个用于构建 Web 应用的模型-视图-控制器(MVC)框架,Spring 提供了依赖...