博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPQL部分总结笔记
阅读量:4165 次
发布时间:2019-05-26

本文共 1626 字,大约阅读时间需要 5 分钟。

一:JPQL

JPA的查询语句JPQL与sql语句很像,但是JPQL是面向对象的

JPQL 是区分大小写的,不要写 * 要用别名代替Sql  不区分大小写List
list = query.getResultList(); // 当查询结果是一个对象的时候,我们指定用该对象就收查询结果List
list = query.getResultList(); // 当我们查询的结果是多个数据组成的时候,我们用一个Object类型的数组接收数据

二:JPQL常用格式

1)外部传入,后台接收格式
jpql=“select o from Employee o where o.department.city in (?1,?2)”;

Query query = entityManager.createQuery(jpql);

query.setParameter(1, “成都”).setParameter(2, “广州”); // 默认是从1开始的,支持自定义数字

2)支持根据指定的参数【排序】

String jpql = “select o from Employee o order by desc”; // 默认升序,这里是指定降序排列

3)使用【相似查询】

String jpql=“select o from Employee o where like ?1 or like ?2”;

Query query = entityManager.createQuery(jpql);

query.setParameter(1, “%er%”).setParameter(2,"%en%");

4)使用distinct【消除笛卡尔积】

String jpql="select distinct , from Employee o ";

5)所有集合都有一个Size属性【计数】

String jpql=“select d from Department d where d.employees.size>0”;

6)将集合转换成数组

list.forEach(e-> System.out.println(Arrays.asList(e)));

7)聚合函数使用

avg (e.salary) 求平均值
max (e.salary) 求最大值
8)JOIN LEFT JOIN
1.不需要手动消除笛卡尔积
2.关联的是属性 对象的别名.属性

9)分组

String jpql=“select ,avg (e.salary),max (e.salary) from Employee e group by e.department”
三:分页
假分页:
一条sql看到所有的数据
每次用到缓存中去找
优点:第N次速度非常快
缺点:数据比较多时,占用内存很多,第一次查询慢
第几条到第几条
Query.getResultList.subList(?,?)

真分页:

每次查询到数据库中去找

SetFirstResult() 第几条开始

SetMaxResult() 每次查询多少条
GetSingleResult() 获得单个值
四:在jpql中使用sql原生查询
CreateNativeQuery(sql语句,指定查询类型)
五:事务并发,几个事务同时运行
原子性:最小单位,不可分割
一致性:开始到结束,数据是一致的
持久性:当我们操作完成,数据永久保存
隔离性:由事务并发所作修改必须与任何其它并发事务所作的隔离

第一类丢失更新、第二类丢失更新:   使用乐观锁解决      悲观锁:安全性能最高,但是性能最低脏读虚读不可重复乐观锁:解决办法是加一个 版本号  在版本号上加注解:@version   运行时,版本号自动加1后,就锁定版本,不再允许该类的字段被修改了,从而达到锁定的目的

转载地址:http://gexxi.baihongyu.com/

你可能感兴趣的文章
C 语言 学习---回调、时间定时更新程序
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
vue项目打包后无法运行报错空白页面
查看>>
阿里p8程序员四年提交6000次代码的确有功,但一次错误让人唏嘘!
查看>>
一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!
查看>>
985硕士:非科班自学编程感觉还不如培训班出来的,硕士白读了?
查看>>
码农:和产品对一天需求,产品经理的需求是对完了,可我代码呢?
查看>>
第六章 背包问题——01背包
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>