JPAUtils类
Posted jameshuangbhlx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPAUtils类相关的知识,希望对你有一定的参考价值。
保证工程中EntityManagerFactory只有一个
多个线程并发访问这个EntityManagerFactory不会有线程安全问题,是一个线程安全对象
用entityManager进行增删改查
查询默认会使用缓存,自带缓存
em有缓存对象,先检测缓存里是否有id为1的客户对象,没有,就发送sql语句查询数据库得到一个对象,然后再把该对象存到缓存里
这个缓存比mybatis缓存强,mybatis缓存鸡肋,查一个数据,放缓从,事务没提交,做一些增删改,缓存立马失效
查询的延迟加载
修改
先查询再修改
事务提交会自动更新
过程:先查出来,事务提交的时候,会比较对象数据是否和表的记录一致,如果不一致,就把对象信息更新到表里面去
对象要和em有关系才会自动更新,否则显示调用更新em.merge(""),这个方法容易丢失数据,不推荐使用
删除
先查询,再删除
detached:游离态,脱管 不受管理
persistence: 持久态
JPQL java Persistence Query Language
sql:select * from cst_customer
jpql:from Customer 去掉select * ,将表名换成类名,列名换成属性名,查出的一行数据形成一个对象,放到集合中去返回
查询所有
em.createQuery("from Customer")
分页查询
//设置分页信息
mysql分页用limit,oracle分页用rownum
查count(*)规定写long
以上是关于JPAUtils类的主要内容,如果未能解决你的问题,请参考以下文章
保存一下简单封装的工具类JsonUtils android网络判断的Utils 是否连接无wifisdcard状态的utils