JPA二级缓存、乐观锁

JPQL

内连接和外连接的区别和适用场景

内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行

sql连接语句

​ 内连接:inner join

​ 左外连接:left join

​ 右外连接:right join

​ 全外连接:mysql不支持

JPQL:join不需要on,条件是对象.属性

分页

JPA二级缓存、乐观锁_第1张图片
查询总条数:Long count= (Long)querySingleResult()

JPQL语句运行时翻译为原生SQL

​ 1.并不是所有的sql都有对应的JPA方法(JPQL)

​ 2、JPA效率低:

*	不重要的地方,写JPA,JPQL

	*	使用缓存(一级、二级)
	*	需要重点优化的地方写原生sql
事务:
* 原子性:同一组事务,同时成功,同时失败
* 一致性:事务操作完成后,两边数据结果一致(能量守恒)
* 隔离性:一组事务执行时,不受另一组事务的影响
* 持久性:提交了事务,数据就保存到断电不丢失数据的设备中

事务并发的问题:

​ 大问题:

丢失更新问题 --多个事务同时进行更新操作

脏读 – 一个事务读取到另一个事务提交更新前的数据

​ 小问题:

不可重复 – 一个事务督导另一个事务update更新前后的数据

幻读(虚读) – 一个事务读到另一个事务insert插入前后的数据

悲观锁:只允许同时只有一个事务执行,效率低,安全性高

乐观锁:打标记,效率较高,安全性较低

你可能感兴趣的:(JPA二级缓存、乐观锁)