看着自己弟弟在成都聚全家之力盘一套房,

看着自己二哥,在成都也为车贷房贷奔波劳累,身心俱惫,

生活不易啊,这个社会环境下,就像从数据库拿数据一样,只拿我们想要的,或许会活的滋润很多吧。

最近的这个项目接触到了SpringDataJPA的使用,就结合一些资料做个学习总结

  首先说说 SpringData 吧,大家都知道Spring善于整合,吸天下功力,一博己身越龙门,

  现在的Spring就是那个越过龙门大展宏图的鲤

  SpringData是Spring开发团队提供的一系列对持久层框架的整合的规范接口,

    比如redis,mongodb,jpa,elasticSearch等,mybatis(卖女求荣,hahahaha...)

  今天我们的主角就是JPA,

SpringDataJPA:

  核心:AOP (JPA只是一套标准的接口定义,Hibernate底层的实现)

  玩法:持久层接口继承以下两个接口,可完成常规的单表简单复杂查询

    JpaRepository<T,ID>       : 该接口提供了基本的增删改查

    JpaSpecificationExecutor<T>  :用于做复杂的条件查询

  查询(方法名自动生成 和 @Query注解 ):

    1.方法名自动生成

    在使用的时候,接口中定义了很多的查询API,可以直接使用(findAll(),findByID()...)

      让人摸不透的是可以自定义方法名完成查询

      

      语法规则如下:

      

    2. @Query注解,然后就是手写sql了,手写sql又分为面向对象查询,和原生sql查询,取决于一个 @nativeQuery=“”的boolean值

       @nativeQuery,默认为false,采用面向对象的方式进行查询,

         手动设置为true后,就可以在value中键入原生sql语句了(推荐使用这种,可以在客户端检验正确性)

    /**
* 根据标签id 查询热门的回答列表
* @param labeiId
* @param pageable 分页对象
* @return
*/
//开启手写sql 不使用面向对象的方式查询
@Query(nativeQuery = true, value = "SELECT * FROM tb_problem p WHERE p.`id`IN(SELECT problemid FROM tb_pl WHERE labelid = ?)ORDER BY reply DESC")
Page<Problem> findHot(String labeiId,Pageable pageable);

  修改和删除:如果想完成修改和删除的话,就得另外加上一个注解了  @Modifying

      加了@modefying注解后,业务层必须加上事务注解才能进行修改和删除   @Transactional

    

若有错误,欢迎指出修正

  

SpringDataJPA的更多相关文章

  1. Spring-data-jpa详解,全方位介绍。

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  2. 【java】spring-data-jpa 集成hibernate实现多条件分页查询

    初次接触spring-data-jpa,实现多条件分页查询. 基础环境 Spring Boot+spring-data-jpa+hibernate+mysql 1.接口 要继承这个接口,这个接口提供了 ...

  3. 【原创】纯干货,Spring-data-jpa详解,全方位介绍。

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  4. Spring-Data-JPA学习

    Spring-Data-JPA结构图 网址: http://blog.sina.com.cn/s/blog_667ac0360102ecsf.html

  5. 纯干货,Spring-data-jpa详解,全方位介绍

    本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...

  6. spring-data-jpa 中,如果使用了one-to-many , many-to-one的注释,会在Jackson进行json字符串化的时候出现错误

    问题: spring-data-jpa 中,如果使用了one-to-many , many-to-one的注释,会在Jackson 2.7.0 进行json字符串化的时候出现错误. 解决办法: 通过在 ...

  7. SpringDataJPA入门就这么简单

    一.SpringData入门 在上次学SpringBoot的时候,那时候的教程就已经涉及到了一点SpringData JPA的知识了.当时还是第一次见,觉得也没什么大不了,就是封装了Hibernate ...

  8. Spring Boot with Spring-Data-JPA学习案例

    0x01 什么是Spring Boot? Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的"接班人",和微服务紧密联系 ...

  9. Spring-Data-JPA整合MySQL和配置

    一.简介 (1).MySQL是一个关系型数据库系统,是如今互联网公司最常用的数据库和最广泛的数据库.为服务端数据库,能承受高并发的访问量. (2).Spring-Data-Jpa是在JPA规范下提供的 ...

  10. sssp-springmvc+spring+spring-data-jpa增删改查

    环境:IDE:eclipse.jdk1.7.mysql5.7.maven 项目结构图 上面目录结构你可以自己创建 搭建框架 首先加入maven依赖包以及相关插件 <dependencies> ...

随机推荐

  1. rancher的Ingress的文件大小上传限制配置

    添加注释 nginx.ingress.kubernetes.io/proxy-body-size

  2. layerweb弹层组件(SSH框架下)

    action类 这里主要看业务方法中表单路径中的(isClose = "1";return resUri;) public class MaterialsAction extend ...

  3. Solidity知识点集 — 溢出和下溢

    合约安全增强: 溢出和下溢 什么是 溢出 (overflow)? 假设我们有一个 uint8, 只能存储8 bit数据.这意味着我们能存储的最大数字就是二进制 11111111 (或者说十进制的 2^ ...

  4. exl表格找两个字符间的数据

    例子找的是]XXX,中间的内容 =MID(B2,FIND("]",B2)+1,FIND(",",B2)-FIND("]",B2)-1)   ...

  5. freeze

    当我们开发项目的时候,会用virtualenv创建很多python独立环境这时候会出现在不同环境下安装相同的模块的情况,为了避免我们通过联网所需模块,不如我们直接从之前Python环境已有的模块中直接 ...

  6. 一个c程序反汇编过程(zz)

    zz from http://blog.luoyuanhang.com/ 最基本的反汇编方法是gdb xxx: disassemble main/其他函数 #反汇编一个简单的C程序并分析 C 源码: ...

  7. zxlizsm

    好久没发表了,毕业之后就没回来过!

  8. 201621123002《java程序设计》第九周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 //功能需求:将所有大于5的生成一个新的List对象 List lis ...

  9. Python_格式化字符

    %% 百分号标记 #就是输出一个%%c 字符及其ASCII码%s 字符串 %r 是不管是什么打印出来%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六 ...

  10. linux '--stdin'错误 -批量修改密码

    虚拟机:VMware虚拟机  系统:Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 ...