看到一般都说,get方法不会查二级缓存,而load会查二级缓存,我配置了二级缓存,请看下面的代码 SessionFactory factory = HibernateUtils.getSessionFactory();
Session session=factory.openSession();
Lesson lesson = (Lesson)session.get(Lesson.class, 1);
System.out.println("第1次查询 ");
session.close();
Session session2=factory.openSession();
Lesson lesson2 = (Lesson)session2.get(Lesson.class, 1);
System.out.println("第2次查询:"+lesson2.getName());运行结果如下:
Hibernate: select lesson0_.ID as ID2_0_, lesson0_.NAME as NAME2_0_ from lesson lesson0_ where lesson0_.ID=?
第1次查询
第2次查询:java
程序仅查询了一次数据库,我觉得第二次查询用的就是二级缓存。
如果我把二级缓存去掉,就会查询两次。
请高手解答下 get方法到底会不会查二级缓存呢?
Session session=factory.openSession();
Lesson lesson = (Lesson)session.get(Lesson.class, 1);
System.out.println("第1次查询 ");
session.close();
Session session2=factory.openSession();
Lesson lesson2 = (Lesson)session2.get(Lesson.class, 1);
System.out.println("第2次查询:"+lesson2.getName());运行结果如下:
Hibernate: select lesson0_.ID as ID2_0_, lesson0_.NAME as NAME2_0_ from lesson lesson0_ where lesson0_.ID=?
第1次查询
第2次查询:java
程序仅查询了一次数据库,我觉得第二次查询用的就是二级缓存。
如果我把二级缓存去掉,就会查询两次。
请高手解答下 get方法到底会不会查二级缓存呢?
解决方案 »
- 求教含有转义字符的字符串的验证
- 谁有spring2.0 的包给小弟一个地址!
- 做java web开发的是否需要好好学习前台开发
- javaWeb 单点登录
- 100分求救!!!mysql中文处理问题,我快晕死了!!只要能解决分值可再加
- 求助:今天在Eclipse框架下运行Spring中step-by-step中的第一个MVC例子,出现这个问题?
- hibernate查询一条记录的问题?
- EJB的使用?
- 为什么在jbuilder8中,所有的类在编译时都不好用了?请帮助!!!!
- 刚搭建的SSH(Struts2,Spring,Hibernate)框架,启动报错缺少SpringMvc.xml
- struts2上传文件,怎么获取文件的后缀名
- cookie 的问题,求大牛们帮助!!!!!!!!!!!!!急
1. see if its already loaded
2. see if its cached
3. actually go to the database
源代码只有一点差异 public Object load(Class clazz, Serializable id) throws HibernateException {
if (id==null) throw new NullPointerException("null is not a valid identifier");
Object result = doLoadByClass(clazz, id, true, true);
ObjectNotFoundException.throwIfNull(result, id, clazz);
return result;
}
public Object get(Class clazz, Serializable id) throws HibernateException {
if (id==null) throw new NullPointerException("null is not a valid identifier");
return doLoadByClass(clazz, id, true, false);
}