HIbernate中get()和load()之间的区别

这两个方法都用来加载持久化类对象(查询),参数有两个get / load(Class clazz,Serialize id),第一个是需要查找的对象类型,第二个是对应的主键id

Usertable user=(Usertable)session.get(Usertable.class, 2);  
//或者Usertable user=(Usertable)session.load(Usertable.class, 2); 

区别:

1,load()查询会先到缓存中去查,如果没有则返回一个代理对象(不马上到数据库中查找),等到后面使用这个代理对象的时候,才到数据中查找相应的信息。若还是没有找到就抛出异常。get()查询则是先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null。

2,load()查询支持延迟加载,所谓延迟加载就是用到后才到数据库中查询,而get()查询不支持。

3,总的来说,使用load()方法需要确保数据库中存在相应的值,否则就会抛异常,而get()查询则是试探性的获取,如果没有就返回null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值