hibernate之关于Hibernate的一级、二级缓冲
来源:互联网 发布:淘宝排名优化 编辑:程序博客网 时间:2024/06/16 23:11
【Hibernate】一级、二级缓冲
ok,什么是缓冲?
一级缓冲
@Test publicvoid findTestyijihuanchong(){ Session s=sessionFactory.openSession(); s.beginTransaction(); Person person=(Person)s.load(Person.class, 1); System.out.println(person.getName()); //因为Session存在缓冲,所以这个查询直接在session中取 Person person2=(Person)s.load(Person.class, 1); System.out.println(person2.getName()); s.getTransaction().commit(); }
@Test publicvoidfindTestyijihuanchong(){ Sessions=sessionFactory.openSession(); s.beginTransaction(); Personperson=(Person)s.load(Person.class, 1); System.out.println(person.getName()); s.getTransaction().commit(); s.close(); Sessions2=sessionFactory.openSession(); s2.beginTransaction(); Personperson2=(Person)s2.load(Person.class, 1); System.out.println(person2.getName()); s2.getTransaction().commit(); s2.close(); }
二级缓冲
<!-- 开启缓冲 --><property name="hibernate.cache.use_second_level_cache">true</property><!--指定是哪个二级缓冲--><property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property><!-- 使用查询二级缓冲 --><propertyname="hibernate.cache.use_query_cache">true</property>
@Entity@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)@Table(name="p_person")
XML配置
<class name="Person" table="t_person"> <cache usage="read-write"/> <id name="id">
@Test publicvoid findTesterjihuanchong(){ Sessions=sessionFactory.openSession(); s.beginTransaction(); Personperson=(Person)s.load(Person.class, 1); System.out.println(person.getName()); s.getTransaction().commit(); s.close(); Sessions2=sessionFactory.openSession(); s2.beginTransaction(); Personperson2=(Person)s2.load(Person.class, 1); System.out.println(person2.getName()); s2.getTransaction().commit(); s2.close(); }
查询缓冲
ok,看代码@Test publicvoid findTestList(){ Sessions=sessionFactory.getCurrentSession(); s.beginTransaction(); List<Person>persons=s.createQuery("fromPerson").setCacheable(true).list(); List<Person>person1=s.createQuery("fromPerson").setCacheable(true).list(); for(Person person:persons){ System.out.println(person.getName()+"----"+person.getId()); } for(Person person:person1){ System.out.println(person.getName()+"----"+person.getId()); } s.getTransaction().commit(); }
1 0
- hibernate之关于Hibernate的一级、二级缓冲
- hibernate的二级缓冲
- hibernate缓存一级和二级的区别
- 关于Hibernate的缓存之Hibernate的一级缓存理解....
- 心得15-hibernate的优化2-缓存(一级、二级)
- hibernate的一级、二级和查询缓存问题
- 说说自己对hibernate一级、二级、查询、缓存的理解。
- 关于hibernate一级缓存
- 关于Hibernate一级缓存的快照问题
- Hibernate 之 一级缓存
- Hibernate 之 一级缓存
- Hibernate之一级缓存
- Hibernate之一级缓存
- hibernate一级缓存机制(还有二级)
- Hibernate的一级缓存
- Hibernate的一级Cache
- Hibernate的一级缓存
- hibernate的一级缓存
- QAbstractItemDelegate类参考
- Joda-Time 简介
- 简单c语言调戏qq
- 新入职的程序员如何更快的融入项目当中?
- SVN本地服务器搭建及在Eclipse中的应用
- hibernate之关于Hibernate的一级、二级缓冲
- 实现isalpha的功能
- Python核心编程读书笔记
- OpenGL小探:显示列表
- 黑马程序员-day26网络编程2
- 黑马程序员-多线程(一)
- 结构体对齐
- POJ 1979 Red and Black (深搜)
- 忘记了root密码,强行进入!更以前的RHEL5,6不太相同