- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hibernate_03_懒加载和二级缓存
IT资讯交流网 WWW.IT315.ORG Hibernate 内容: 在xml中定义的查询。 使用原生的查询。-SQLQuery 批量处理。flush,clear 懒加载。lazy 二级缓存。Cfg.xml. Ehcache. 锁 拦截器 监听。 1、在XML中定义查询语句 使用原生的查询语句: sess.createSQLQuery(“select * from someTable); 以下直接将数据转成了ListMap类型,否则将返回 ListObject[]) 调用存储过程-简单存储过程: 访问带有输入参数的存储过程: Hibernate并不解决100%的JDBC问题,Hibernate并不处理带输出参数的存储过程。但可以接收输入的参数: 调用存储过程: 也可以使用命名的查询 调用Oracle的存储过程: 批量处理: 懒加载:Load/get方法: 通过load方法获取一个对像时,如果还没有调用对像的方法,则不会查询数据库,只会返回一个代理(将用户的类进行代理,功能同时来增强)对像。 用load方法是,总会返回一个实际的对像。以下代码不管传的id是什么,都将返回false. Get方法会直接获取一个原生的对像,而不是代理,所以在某此情况下,如果要直接获取对像,也可以使用get方式。 Stud stud = (Stud)session.get(Stud.class,id); load 可以通过以下两种方式让通过load加载的对像,显示的加载。 1、在session关闭前调用它的方法。 2、在session关闭前使用HibernateUtil的方法显示加载 Session session=… Person p= (Person) s.load(Person.class, IIIIIIIIIII); boolean boo = Hibernate.isInitialized(p); session.close(); 3、可以通过修改配置文件lazy=false关闭懒加载。则使用load时即将查询出对像。 4、在注解中可以使用@Proxy(lazy=false)修改。 关联关系的懒加载 Load方法的使用精髓: Load方法不会命中数据库。且必须要确定数据库中存在此记录时才可以使用load方法。这让load方法变成了鸡肋。 但要注意,任何一个方法的设计都是有用的。正所谓天生我才必有用是也。 如果仅是为了数据绑定、设置数据之间的关系,则没有必要命中数据库,此时load方法的效率就比get高,因为load方法不会命中数据库,但却可以设置上关系。 如: Person p = session.load(Person.class,11); Car c = session.load(Car.class,1001); p.getCars().add(c); session.save(p); 延迟加载extra : 在某些情况下,延迟加载比懒加载更好用。 如调用集合的方法:size(),contains(),isEmpty()时,我们不希望加载整个集合。此时使用延迟加载就显得格外有用。 如:执行size()方法时,并不会查询子表中的所有记录,而是只执行一个select count(*) ..语句。从而使性能更高 。 延迟加载extra:-通过配置文件实现: hibernate-mapping package=cn.itcast.domain class name=Person table=person id name=id type=string column name=pid/ generator class=uuid/generator /id property name=name column=pname type=string/ !-- 设置加载方式为延迟加载 -- set name=cars lazy=extra cascade=save-update inverse=false key column=c_pid/ one-to-many class=Car/ /set /class class name=Car table=car id name=id type=string column name=cid/ generator class=uuid/ /id property name=name column=cname/ many-to-one name=person class=Person column=c_pid/ /class /hibernate-mapping 延迟加载extra:通过注解实现: @Entity
您可能关注的文档
最近下载
- 内浮顶罐安全管理规范.pdf VIP
- 最新子宫颈高级别上皮内病变管理的中国专家共识2022(完整版).pdf VIP
- 2025年建筑工程副高面试题及答案.docx VIP
- 2023年嘉兴学院计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 四川省德阳市2023-2024学年高一下学期教学质量监测 化学试卷含答案.docx VIP
- 流量积算仪瞬时流量不确定度评定与流量理论值的误差分析.pdf
- CASS编码、图层、图块名称、属性对照表.pdf VIP
- 2023年浙江万里学院计算机科学与技术专业《计算机网络》科目期末试卷A(有答案).docx VIP
- 《中国药典》2020年版 二部 注射用水.pdf VIP
- 沈阳建筑大学《计算机网络》2025 学年第二学期期末试卷.pdf VIP
原创力文档


文档评论(0)