Spring Cloud项目扩展(六)集成SpringData jpa

Spring Cloud项目扩展(六)集成SpringData jpa_第1张图片

​springdata jpa使用起来比较简单,本篇将在项目集成。目的是为后面介绍elasticsearch的使用打下基础。下面直接开始。

1,以我们的example-service项目为例,首先引入jar包,lombok是非必须的。我们这里使用的mysql数据库。

Spring Cloud项目扩展(六)集成SpringData jpa_第2张图片

2,增加mysql和jpa配置。hibernate.hbm2ddl.auto 参数的作用主要用于:自动创建、更新、验证数据库表结构,有四个值。

Spring Cloud项目扩展(六)集成SpringData jpa_第3张图片

3,创建一个新的moudle,拥有存放一些公共的实体类。

Spring Cloud项目扩展(六)集成SpringData jpa_第4张图片

4,新创建的entity模块中引入jar包。

Spring Cloud项目扩展(六)集成SpringData jpa_第5张图片

5,在service模块中引入entity模块。在service的pom中加入如下代码。

Spring Cloud项目扩展(六)集成SpringData jpa_第6张图片

6,在entity中增加实体类。

Spring Cloud项目扩展(六)集成SpringData jpa_第7张图片

7,在service项目中创建dao包,并在包中创建一个接口集成JpaRepository

Spring Cloud项目扩展(六)集成SpringData jpa_第8张图片

8,测试查看结果。

Spring Cloud项目扩展(六)集成SpringData jpa_第9张图片

总结: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实体类。

Spring Cloud项目扩展(六)集成SpringData jpa_第10张图片

10.2,创建一个存放联合查询结果的实体类。记得一定要带上构造方法。

Spring Cloud项目扩展(六)集成SpringData jpa_第11张图片

10.3,MyBallRepository中增加如下查询方法。

 

10.4,查看运行结果。

Spring Cloud项目扩展(六)集成SpringData jpa_第12张图片

Spring Cloud项目扩展(六)集成SpringData jpa_第13张图片

本篇简单介绍了jpa的使用。集成和简单使用都很简单。关键是要对JPQL熟悉,才能熟练运用。

关注公众号:直立行走的程序猿

公众号回复springcloud获得git的源码下载地址。

你可能感兴趣的:(springcloud,jpa)