hibernate二级缓存

weixin_40526170 2018-04-08 01:24:23
Session session1 = factory.openSession();
Department dept = (Department) session1.get(Department.class, 2);
System.out.println(dept);
session1.close();


Session session2 = factory.openSession();
Department dept2 = (Department) session2.get(Department.class, 2);
System.out.println(dept2.getUserSet());
session2.close();

部门和员工是一对多的关系,员工没有采用懒加载
两个类都做了配置
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<class-cache class="com.hub.entity.Department" usage="read-write"/>
<class-cache class="com.hub.entity.User" usage="read-write"/>
结果hibernate做了三次查询这是为什么
Hibernate: select department0_.did as did0_0_, department0_.name as name0_0_ from t_department department0_ where department0_.did=?

Hibernate: select userset0_.departmentId as departme3_0_2_, userset0_.uid as uid2_, userset0_.uid as uid1_1_, userset0_.name as name1_1_, userset0_.departmentId as departme3_1_1_, idcard1_.iid as iid2_0_, idcard1_.idName as idName2_0_, idcard1_.user as user2_0_ from t_user userset0_ left outer join idcard idcard1_ on userset0_.uid=idcard1_.user where userset0_.departmentId=? order by userset0_.uid asc

Department{did=2, name='工商部', userSet=[User{uid=1, name='xiaoq122', , idCard=IdCard{iid=1, idName='12sadasdacaweeff'}, User{uid=3, name='lisi', , idCard=null}, User{uid=4, name='zhaoliu', , idCard=null}]}

Hibernate: select userset0_.departmentId as departme3_0_2_, userset0_.uid as uid2_, userset0_.uid as uid1_1_, userset0_.name as name1_1_, userset0_.departmentId as departme3_1_1_, idcard1_.iid as iid2_0_, idcard1_.idName as idName2_0_, idcard1_.user as user2_0_ from t_user userset0_ left outer join idcard idcard1_ on userset0_.uid=idcard1_.user where userset0_.departmentId=? order by userset0_.uid asc

[User{uid=1, name='xiaoq122', , idCard=IdCard{iid=1, idName='12sadasdacaweeff'}, User{uid=3, name='lisi', , idCard=null}, User{uid=4, name='zhaoliu', , idCard=null}]
...全文
295 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
本书由互联网上影响广泛的开放文档OpenDoc系列自由文献首份文档“Hibernate开发指南”发展而来。在编写过程中,进行了重新构思与组织,同时对内容的深度与广度进行了重点强化。本书从持久层入手,引出对象/关系数据库映射的由来,接下来聚焦于目前最完善、最强悍的ORM产品——Hibernate。从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术、自定义持久化实现、Hibernate回调与拦截、Hibernate分页等实用技术,Hibernate实战部分则用一个真实论坛的创建演示了Hibernate的强大功能。本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。本书适合于Hibernate的各个阶层的读者。 注:因为资源有点大,所以折分上传,需要把深入浅出hibernate(PDF)第一部分.深入浅出hibernate(PDF)第二部分,深入浅出hibernate(PDF)第三部分全部下载,并解压到一个地方才可以正常解压阅读.给大家带来不便望谅解.
这是一个实际使用中的项目,可访问 http://cdbke.cuit.edu.cn 可查看效果及功能,后台需要登录后才能使用(出于安全性考虑这里就不给大家介绍了,另外还有一个struts1版本的,如有需要可以与我联系)。 此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿google人名自动补全;头像上传剪切压缩处理。 包含有完整的jar包和源代码,可以直接下载编译部署和运行,这是专门为我们实验室定制开发的。虽然后台逻辑并不复杂,但已经包含了架构基于s2sh技术型系统的全部基础部分:如分页,缓存,文件上传,连接池等。很适合学习使用,希望对初学JavaEE WEB开的人有所帮助。 这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范检查,代码审查等功能(与此相关的jar包由于上传文件大小限制未导入) 本系统一直在使用中,所以还会不段更新,之后我打算再做一个基于javaee6的实现,给需要想学习ejb3.1等技术的朋友一个参考实现 集成测试相关jar包和更新构建脚本下载:http://download.csdn.net/source/2427972

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧