本文主要是介绍session.update方法是否操作了二级缓存,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
session.update方法是否操作了二级缓存?
答:没有使用二级缓存
试验:
1.在配置文件中配置
<property name="cache.use_second_level_cache">true</property>
使用二级缓存
<property name="generate_statistics">true</property>
使用二级缓存统计机制
2.在映射文件中配置
<cache usage="read-write"/>
配置持久化类的 使用二级缓存的策略
Student student = (Student)session.get(Student.class, 1);student.setSname("hhfsdgdfhxc");session.update(student);System.out.println(sessionFactory.getStatistics().getEntityUpdateCount()); //根据统计机制 统计缓存中的更新的实体个数 此处输出为0transaction.commit();session.close();System.out.println(sessionFactory.getStatistics().getEntityUpdateCount()); //根据统计机制 统计缓存中的更新的实体个数 此处输出为1session = sessionFactory.openSession();Student student2 = (Student)session.get(Student.class, 1); //此处并没有发生select语句 说明是二级缓存中取得 ,但对象是 commit时将对象刷到二级缓存中session.close();
结论:
update之后统计机制统计EntityUpdateCount为0,说明update并没有将对象放入二级缓存
这篇关于session.update方法是否操作了二级缓存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!