SpringDataJPA
看着自己弟弟在成都聚全家之力盘一套房,
看着自己二哥,在成都也为车贷房贷奔波劳累,身心俱惫,
生活不易啊,这个社会环境下,就像从数据库拿数据一样,只拿我们想要的,或许会活的滋润很多吧。
最近的这个项目接触到了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的更多相关文章
- Spring-data-jpa详解,全方位介绍。
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
初次接触spring-data-jpa,实现多条件分页查询. 基础环境 Spring Boot+spring-data-jpa+hibernate+mysql 1.接口 要继承这个接口,这个接口提供了 ...
- 【原创】纯干货,Spring-data-jpa详解,全方位介绍。
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- Spring-Data-JPA学习
Spring-Data-JPA结构图 网址: http://blog.sina.com.cn/s/blog_667ac0360102ecsf.html
- 纯干货,Spring-data-jpa详解,全方位介绍
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- 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字符串化的时候出现错误. 解决办法: 通过在 ...
- SpringDataJPA入门就这么简单
一.SpringData入门 在上次学SpringBoot的时候,那时候的教程就已经涉及到了一点SpringData JPA的知识了.当时还是第一次见,觉得也没什么大不了,就是封装了Hibernate ...
- Spring Boot with Spring-Data-JPA学习案例
0x01 什么是Spring Boot? Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的"接班人",和微服务紧密联系 ...
- Spring-Data-JPA整合MySQL和配置
一.简介 (1).MySQL是一个关系型数据库系统,是如今互联网公司最常用的数据库和最广泛的数据库.为服务端数据库,能承受高并发的访问量. (2).Spring-Data-Jpa是在JPA规范下提供的 ...
- sssp-springmvc+spring+spring-data-jpa增删改查
环境:IDE:eclipse.jdk1.7.mysql5.7.maven 项目结构图 上面目录结构你可以自己创建 搭建框架 首先加入maven依赖包以及相关插件 <dependencies> ...
随机推荐
- Mybatis之批量操作
首先批量操作的优点是:大大的提高查询的效率. 举个简单的例子:如果在程序中遍历来执行sql的话,这种情况就是有多少行数据就要执行多少条sql,这样导致的效率将是非常低. 如下可能需要40s inser ...
- Sql 根据当前时间,获取星期一具体日期
--根据当前时间,计算每周一日期,周日为每周第一天 declare @getDate datetime --set @getDate='2018-12-30' set @getDate='2019-0 ...
- 设计模式之jdk动态代理模式、责任链模式-java实现
设计模式之JDK动态代理模式.责任链模式 需求场景 当我们的代码中的类随着业务量的增大而不断增大仿佛没有尽头时,我们可以考虑使用动态代理设计模式,代理类的代码量被固定下来,不会随着业务量的增大而增大. ...
- 微信小程序登录流程
小程序登录流程 参考 app.js需要做的 1,首先通过wx.login()拿到code,成功之后,发送数据,请求接口,把code发送给后端,换区openid,sessionKey,unionId,把 ...
- 使用串口安装centos操作系统
https://linuxconfig.org/how-to-force-text-mode-installation-of-redhat-linux https://www.centos.org/f ...
- 20172306 2018-2019-2 《Java程序设计与数据结构》第九周学习总结
20172306 2018-2019-2 <Java程序设计与数据结构>第九周学习总结 教材学习内容总结 无向图 图是由结点和这些结点之间的连接构成 就图来说,结点叫做顶点,结点之间的连接 ...
- Django高级实战 开发企业级问答网站完整
资源获取链接点击这里 Django高级实战 开发企业级问答网站 从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态.文章.问答.私信.消息通知.搜索.个人中心,打造企业级知识问答网站,由此全 ...
- TypeError: 'range' object does not support item assignment处理方法
vectorsum.py#!/usr/bin/env/pythonimport sysfrom datetime import datetimeimport numpy as np # def num ...
- CENTOS7上安装MYSQL5.7.21流程
1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql 2下 ...
- jieba库的使用和好看的词元
一.jieba库的使用与说明 1.jieba库基本介绍 jieba库是优秀的中文分词第三方库 -中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 ...