请教一个关于Hibernate的问题
时间:2011-09-13
来源:互联网
我的相应的User.hbm.xml里有设置lazy为false.
这是为什么呢?
作者: ansn001 发布时间: 2011-09-13
作者: EverWHL 发布时间: 2011-09-13
用lazy=false时,使用get方法可以查出来,按理说应该查询数据是没问题的吧?
我主键id=2
方法 findById(2l);//2 long
作者: ansn001 发布时间: 2011-09-13
LZ如果设置lazy=false表示不延迟加载,那么查找顺序就和get一样(session缓存中、二级缓存、数据库);
LZ报错是无法使用代理,莫非session失效
作者: lvhongfen 发布时间: 2011-09-13
hibernate在3以后的版本中就用get()取代了find()方法了!
作者: lvhongfen 发布时间: 2011-09-13
用get()取代find()??????是什么意思?
是用get()取代load()???吧???
作者: ansn001 发布时间: 2011-09-13
作者: tanwan 发布时间: 2011-09-13
作者: ansn001 发布时间: 2011-09-13
* 查询用户信息
*/
public User findById(Long id) {
User user=null;
try {
user=(User)getSession().load(User.class,id);
} catch (HibernateException e) {
e.printStackTrace();
}finally{
getSession().close();
getSessionFactory().close();
}
return user;
}
作者: ansn001 发布时间: 2011-09-13
查询数据时,它们都是先在缓存中找,缓存中没有的话,再到数据库中查找,但还是有区别的。
1.如果找不到符合条件的纪录,get方法将返回null.而load将会报出ObjectNotFoundEcception.
2.load方法可以返回实体的代理类实例,而get永远只返回实体类.
3.load方法可以充分利用二级缓存和内部缓存的现有数据,而get方法只在内部缓存中进行查找,如没有发现对应数据将跳过二级缓存,直接调用SQL完成查找.
你的帖子中的异常估计就是由于配置和代码的原因引起的,就是说用load方法的时候,没有能返回代理..
呵呵,希望可以帮上你..
作者: bijanen19861113 发布时间: 2011-09-13
作者: a745248674 发布时间: 2011-09-13
作者: ajun_studio 发布时间: 2011-09-13
楼主在使用load方法的时候把return user;放在try块里试试。
作者: hxiaocai 发布时间: 2011-09-13
作者: ansn001 发布时间: 2011-09-13
作者: quanlei1507053 发布时间: 2011-09-13
作者: quanlei1507053 发布时间: 2011-09-13
作者: SmileToCandy 发布时间: 2011-09-13
<session-factory>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:ansn001</property>
<property name="connection.username">house</property>
<property name="connection.password">01026891</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="cache.query_cache_factory">true</property>
<mapping resource="cn/jbit/houserent/bean/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
用的直接配置hibernate的
难道这个也是默认成连接池????这个我刚学hibernate没多久,见谅哦。请帮着多解释下
作者: ansn001 发布时间: 2011-09-13
比如maxactive maxwait 等等,
那这些属性他是怎么决定的呢?
作者: ansn001 发布时间: 2011-09-13
作者: ansn001 发布时间: 2011-09-13
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28