springdata jpa使用起来比较简单,本篇将在项目集成。目的是为后面介绍elasticsearch的使用打下基础。下面直接开始。
1,以我们的example-service项目为例,首先引入jar包,lombok是非必须的。我们这里使用的mysql数据库。
2,增加mysql和jpa配置。hibernate.hbm2ddl.auto 参数的作用主要用于:自动创建、更新、验证数据库表结构,有四个值。
3,创建一个新的moudle,拥有存放一些公共的实体类。
4,新创建的entity模块中引入jar包。
5,在service模块中引入entity模块。在service的pom中加入如下代码。
6,在entity中增加实体类。
7,在service项目中创建dao包,并在包中创建一个接口集成JpaRepository
8,测试查看结果。
总结:jpa的集成很简单。其实JPA在这里遵循 Convention over configuration(约定大约配置)的原则,遵循 Spring 以及 JPQL 定义的方法命名。Spring提供了一套可以通过命名规则进行查询构建的机制。这套机制会把方法名首先过滤一些关键字,比如 find…By,read…By,query…By,count…By 和 get…By。系统会根据关键字将命名解析成 2 个子语句,第一个 By 是区分这两个子语句的关键词。这个 By 之前的子语句是查询子语句(指明返回要查询的对象),后面的部分是条件子语句。如果直接就是 findBy… 返回的就是定义 Respository 时指定的领域对象集合,同时 JPQL 中也定义了丰富的关键字:and、or、Between 等等。
9,自定义语句。使用Query注解并且在注解中使用nativeQuery=true,可以使用原生语句进行查询。
也可以去掉nativeQuery=true,使用费原生sql进行查询。
10,关联查询。
10.1,entity项目中增加Hero实体类。
10.2,创建一个存放联合查询结果的实体类。记得一定要带上构造方法。
10.3,MyBallRepository中增加如下查询方法。
10.4,查看运行结果。
本篇简单介绍了jpa的使用。集成和简单使用都很简单。关键是要对JPQL熟悉,才能熟练运用。
关注公众号:直立行走的程序猿
公众号回复springcloud获得git的源码下载地址。