求javaweb大神,关于Hibernate查询方面的问题,求指导!

上帝爱众生 发布于 2015/04/19 11:07
阅读 148
收藏 0

我知道find和query查询:find是先从缓存中查找(找不到才去数据库中查),而query则是直接从数据库中查找,但是我现在没用到二级缓存,只有Hibernate自带的一级缓存,和spring一起用的时候,我们知道spring会帮我们自动关闭session,session一被关闭一级缓存自然就会消失,而且用spring搭配的话连session都是通过配置自动创建好的,到时候我们直接getCurrentSession就行了,好了,

说了这么多废话我就是想问一下:是不是在一次请求中我不管调用Dao层操作多少次数据库结果都只是创建了一次session?

比如:Action层这样写:

us.addUserService(User u);
ts.addTeacherService(Teacher t);

我们知道这一次请求一共利用Service层调用了两次Dao层,在这一次请求的两次操作中,session是不是只被创建了一次?而这次访问结束session是不是就被Spring自动关闭了(一级缓存死掉)?

如果是这样的话,在不配置ehcache二级缓存的情况下一级缓存很容易消失,那这时候find和query效率是否一样高呢?或者说query更高一点(因为免去了去缓存中查这一步)?如果配置了二级缓存肯定find更高一点吧?

刚刚学完SSH整合,在这一点上有点迷惑,求前辈们指导一下,谢谢了~



加载中
返回顶部
顶部