学习了hibernate3天了
困惑
核心配置文件里面2部分一部分封装JDBC一部分加载ORM映射文件
hibernate的3大特性 
一级缓存
对象持久
延迟加载(懒加载)
我是学web开发 所谓持久层 pojo对象在session缓存中持久,session一关闭对象脱管,对于http协议的请求-响应机制用神马用啊?,session是线程单例的,别的线程不能访问。而且同一个对象持久在session缓存中生命周期就请求-响应就关闭session相应的缓存也没了,我真的没理解一级缓存作为hibernate的第一大特征有什么实在用处??钻死胡同了,求解救
最近做角色权限分离,就想到(hibernate属性关联,懒加载把角色的所有权限id都查出来<one-to-many>角色和权限是1对多关系
)想到把当前角色的所有权限set集合都加载到一级缓存中,以后每次请求都不用再麻烦数据库了,我的想法是不是天真了??Hibernate

解决方案 »

  1.   

    额,貌似第一次登陆了,就可以把set权限集合放入servlet下的session保存下来哈,以后每次请求都可以用拦截器或Filter验证权限。现在想通了
      

  2.   

     好长啊。你说session是单例的,别的线程无法访问,设置一下线程安全不就可以了。一级缓存好像是和时间有关系,第一次查询的时候hibernate会把数据缓存到session中,在规定时间内又做了同样的数据库查询,则直接从缓存中读取数据,而不去从数据库中查找。你可以去试试直接修改数据库,修改后的数据是无法马上在系统中显示的。那就是因为系统读取的是缓存中的数据。 你一楼说servlet下的session?你说的是HttpSession吗?HttpSession与hibernate的session是两码事。