您当前的位置: 首页 >  spring

水的精神

暂无认证

  • 2浏览

    0关注

    711博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

springData——JPA

水的精神 发布时间:2019-07-07 15:56:34 ,浏览量:2

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

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

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

 

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

 

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

 

# # Repository子接口:CrudRepository:

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

 

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

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

 

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

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

 

 

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

 

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

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

 

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

    以上的规则,来一个小demo

       

 

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

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

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

 

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

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

 解决办法就是使用 @query注解,自定义JPQL语句,实现更灵活的的查询。案例如下:

  复杂度上似乎是解决了,但是新的问题又来了,如何传递参数呢,如下:

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

 

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

 

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

 

 

 

关注
打赏
1664074814
查看更多评论
立即登录/注册

微信扫码登录

0.0375s