0
点赞
收藏
分享

微信扫一扫

springData——JPA


   简单的来学习一下springData,它主要是用来简化数据库访问,它支持关系型数据库,还支持NoSql存储。这里主要记一下springData和JPA的融合。JPA本来用起来是比较麻烦的,和spring Data配合起来,就产生了奇妙的反应。

   先说明一下,这篇文章不是入门,只是我自己串一下知识点,帮助自己记忆的。

好处是,让我们的Dao层的编写变得异常简单。这是springData替我们把这些工作做了。

 

# # 具体步骤: 

  • 配置spring整合JPA
  • 在spring配置文件中配置springData(开启扫描)
  • 声明持久层接口,该接口继承Repository
  • 在接口中声明需要的方法

 

# # 说说Repository接口,它有如下子接口:

springData——JPA_自定义

 

# # Repository子接口:CrudRepository:

  这个接口里边主要是增加了一些增删改查的方法

 

# # Repository子接口:PagingAndSortingRepository:(帮助实现分页查询)

springData——JPA_级联_02

还可以对查询的结果进行排序

springData——JPA_自定义_03

 

# # JpaSpecification接口,它是一个特殊的接口,它是用来实现带查询条件的分页查询,但是它并不是Repository体系。

springData——JPA_级联_04

springData——JPA_级联_05

 可以看到调用的是findAll方法,里边需要传两个参数。一个是查询条件,一个是分页信息。

springData——JPA_spring_06

 

springData——JPA_级联_07

 

# # 如何给指定的Repository子接口添加自定义的方法

springData——JPA_自定义_08

 

springData——JPA_spring_09

注意名字一定是照应的,这样才是符合规则的

springData——JPA_自定义_10

最后一步:总是继承 Repository的子接口和我们自定义的接口。

springData——JPA_spring_11

 

# #  Repository子接口中声明方法不是随便声明的,规则如下:

  • 查询方法以 find   read  get开头都可以
  • 涉及条件查询时,条件的属性用条件的关键字连接,并且条件属性以首字母大写。
  • 支持级联操作查询,但是如果当前类有符合条件的属性,就优先使用自己类的属性,而不使用级联的属性。
  • 如果一定要使用级联的属性,就用下划线 _ 去连接

    以上的规则,来一个小demo

       

springData——JPA_级联_12

 

# # 说说Repository中支持的关键字,符合规范的接口方法,可以不自己实现。

springData——JPA_自定义_13

对关键字不明白的,或者想看更具体的:我这里提供一个链接

​​https://www.jianshu.com/p/aebc011fcb7d​​

 

# # 可能比和我感觉到了这似乎并没有太轻松,虽然不用自己去实现了,但是各种各样的规则来了。

于此同时还有一些其他的问题,比如子查询

@query注解,自定义JPQL语句,实现更灵活的的查询。案例如下:

springData——JPA_spring_14

传递参数呢,如下:

springData——JPA_自定义_15

  同时,模糊查询也是支持的:

springData——JPA_级联_16

 

  想要使用原生的sql查询也是可以的

springData——JPA_级联_17

 

# # 使用@Modifying注解帮助完成自定义语句查询操作

springData——JPA_级联_18

 

 

 

举报

相关推荐

0 条评论