Hibernate小知识

Hibernate知识:

1、flush作用
  Session.flush用于清理临时缓存,发出sql语句,但不提交事务


2、uuid主键生成策略,加入session管理就会出现id,
  此时如果调用session.evict会清空持久化上下文,persitentcontext,
  当事务提交时对比镜像查看临时缓存中是否有数据,如果有那么发出sql语句清空临时缓存,
  更改persitentcontext中isexistdata为true,但是此时变量已经不存在会报线程安全异常,
  事务回滚。解决办法当调用evict时先session.flush


3、natived主键生成策略,加入session管理发sql语句,不会有问题


4、assigned主键生成策略,如果是session.save(animal),
  然后session.update(animal)最后session.save(user),但是发出的语句是先insert两条语句,
  然后才更新。如果要做到按照顺序发出sql语句,可以先flush下。

 

 

http://aixiangct.blog.163.com/blog/static/9152246120113652732924/事务和session

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值