Hibernate 的clear()、flush()、evict(obj)使用
来源:互联网 发布:360免费送windows 10 编辑:程序博客网 时间:2024/04/30 07:08
1、clear()
清除session缓存;
public void clearTest() { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); session.beginTransaction(); User u1 = (User) session.get(User.class, 3); //session.clear(); User u2 = (User) session.get(User.class, 3); session.getTransaction().commit();}
当不执行session.clear()时,执行1条sql;当执行session.clear()时执行2条sql。
2、flush()
强制执行从内存到数据库的同步;
public void flushTest(){ Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();//session.setFlushMode(FlushMode.Always|AUTO|COMMIT|NEVER|MANUAL); session.beginTransaction(); User u = (User) session.get(User.class, 3); u.setName("name1"); //session.flush(); u.setName("name2"); session.getTransaction().commit();}
当不执行session.flush()时,执行1条sql;当执行session.flush()时,执行2条sql。
flush()可以设置什么时候执行
Always: 任何代码都会 Flush
AUTO: 默认方式 – 自动
Commit: COMMIT 时
Never: 始终不
MANUAL: 手动方式
3、evict(obj)
清除制定的缓存对象;
public void clearTest() { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); session.beginTransaction(); User u1 = (User) session.get(User.class, 3); User u2 = (User) session.get(User.class, 4); //session.evict(u1); User u3 = (User) session.get(User.class, 3); User u4 = (User) session.get(User.class, 4); session.getTransaction().commit();}
当不执行session.evict(u1)时,执行2条sql;当执行session.evict(u1)时,执行3条sql。
注:hibernate提交sql语句时不是按照程序所写的顺序提交,hibernate会将所有的sql存放到缓存中,等待事务commit()时集中提交,切是按照insert()、update()、delete()的顺序进行提交,所以在适当的时候使用flush()方法可以提前进行部分提交
0 0
- Hibernate 的clear()、flush()、evict(obj)使用
- Hibernate--clear(),flush(),evict()
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate的clear(),flush(),evict()方法详解
- Hibernate clear(), flush(), evict()区别
- hibernate session中clear、evict、flush方法的区别
- Hibernate的evict()方法和clear()方法、flush()方法
- Hibernate Session中flush、clear、evict方法的区别
- Hibernate中session的clear(),flush(),evict()方法详解
- Hibernate中session的clear(),flush(),evict()方法详解
- Hibernate中session的clear(),flush(),evict()方法详解
- hibernate的flush和clear使用
- 【转载】mount: wrong fs type, bad option, bad superblock
- ubuntu11.10+交叉编译hi3515+minigui
- 关于ubuntu+linux+window各种虚拟机文件夹访问的一些命令
- linux 修改时间
- 嵌入式中文输入法字码表
- Hibernate 的clear()、flush()、evict(obj)使用
- VC常见的108个问题(41-80)
- VC++常见的108个问题(1-40)
- VC常见的108个问题(81-108)
- linux读取文本文件 GBK转utf-8
- 为什么离婚,惊呆了?
- EventBus使用和代码分析
- 【转载】VC中TRACE()的用法
- minigui3.0.12 关于qvfb的怪事