Hibernate缓存-Hibernate缓存-公开课件.pptVIP

  • 0
  • 0
  • 约1.44千字
  • 约 12页
  • 2019-05-27 发布于广西
  • 举报
Hibernate缓存 ORM缓存的概念 ORM缓存分类 Session级缓存(一级缓存) Session.evict ( ) Session.clear ( ) session.createQuery().list() 与session.createQuery().iterate() Session级缓存(一级缓存) tx = session,beginTransaction(); Iterator user = session.createQuery(from User ).iterator(); while (user.hasNext()){ User user = (User) user.next(); user.setAge(user.getAge() + 1); session.flush(); session.evict(user) } mit()[ session.close(); Session级缓存(一级缓存) Transaction tx = session.beginTransaction(); for (int i=0; I 10000; i++){ User user = new User(); user.setName(Name + i); session.save(user); if (i % 25) { //以每25个数据作为一个处理单元 session.flush(); //提交数据 session.clear(); //清缓存对象 } } mit(); Session级缓存(一级缓存) session.createQuery().list() 直接从数据库中查出满足条件的对象,然后放入缓存。因此它无法使用缓存。 session.createQuery().iterate() 先从数据库中查出满足条件的对象OID,然后到缓存中去找,命中,则不再从数据库中读取。 SessionFactory级缓存(二级缓存) //清除二级缓存中OID为1的User对象 sessionFactory.evict(User.class, new Long(1)); //清除二级缓存中所有的User对象 sessionFactory.evict(com.demo.model.User); SessionFactory级缓存配置 (1)hibernate.cfg.xml配置 sessionFactory节点中加入: vider_class=org.hibernate.cache.EhCacheProvider ehache.xml 配置 关系映射文件 同步策略可选项 * * Database Data cache 数据访问层 分布式缓存 sessionFactory(二级缓存) 集成第三方缓存插件 应用级/进程级缓存 session级缓存(一级缓存) 事务级缓存 Hibernate中缓存分类 ORM缓存分类 假设现有10000个User对象,以下代码实现将用户年龄加一岁。 以EhCache配置为例: 对ehache.xml进行配置 指写缓存同步策略: *

文档评论(0)

1亿VIP精品文档

相关文档