博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate,get,find,缓存,hibernate缓存
阅读量:5936 次
发布时间:2019-06-19

本文共 680 字,大约阅读时间需要 2 分钟。

hot3.png

一、Hibernate中Session的find、get、load方法的对比:

find()方法是hibernate2中的方法,在现有的hibernate3中已经不提倡使用它。现在提倡使用session.createQuery()创建一个query对象。

 example:String hql = “from xxx where xxx …”;

        List ls = session.find(hql,new Integer(x),Hibernate.INTEGER); 

     get()方法和find()方法在类级别的检索时总是会执行立即检索的,而不管我们在hibernate配置文件中是否对该类定义使用lazy(懒加载);当检索不到相关的对象时,这两种方法都会返回NULL.

    Load方法在进行类级别的检索时,如果该类在hibernate的配置文件中并没有定义检索策略(延迟检索),那么和get方法和find方法一样都是默认立即检索。但是当检索不到相关的对象时,load方法会抛出一个异常:ObjectNotException,如果在配置文件中对于该类添加了Lazy属性后,使用load方法就会变成懒加载了。程序在执行到Student stu = session.load(Student.class)时并不会发送sql语句,只有在调用stu.getName()方法时才会去发送sql语句查询。而get和find都是在执行到session.get\find()时发送SQL语句。

转载于:https://my.oschina.net/wrs/blog/625353

你可能感兴趣的文章
数论概论(Joseph H.Silverman) 习题 5.3,Elementary methods in number theory exercise 1.3.23
查看>>
python ORM理解、元类
查看>>
2018软工实践第一次作业
查看>>
Weekly 4
查看>>
线性表之单链表
查看>>
DP+矩阵快速幂 HDOJ 5318 The Goddess Of The Moon
查看>>
在朗沃这段时间的学习感想
查看>>
(转载)RabbitMQ消息队列应用
查看>>
【转】大型网站后台架构的演变
查看>>
几招防范Java漏洞
查看>>
『003』索引-脚本
查看>>
CH5102 Mobile Service
查看>>
C++当中的virtual继承
查看>>
手机H5显示一像素的细线
查看>>
Menu 菜单栏
查看>>
Integer跟int的区别(备份回忆)
查看>>
集合解析
查看>>
详解分布式应用程序协调服务Zookeeper
查看>>
windows下python2和python3共存
查看>>
奇幻RPG(人物构建 与 Abstract Factory模式)
查看>>