码迷,mamicode.com
首页 > 其他好文 > 详细

JPAUtils类

时间:2018-10-20 18:35:11      阅读:880      评论:0      收藏:0      [点我收藏+]

标签:man   发送   count   去掉   row   提交   mybatis   detach   线程安全   

保证工程中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类

标签:man   发送   count   去掉   row   提交   mybatis   detach   线程安全   

原文地址:https://www.cnblogs.com/jameshuangbhlx/p/9822364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!