调试关于Hibernate的程序遇到的问题
2015-10-26 18:34
459 查看
最怕的就是初学一些东西,低级的错误犯了又犯,现在总结出来以便以后不要再犯类似的错误。
一、Hibernate的延迟加载机制
在用hibernate底层访问数据库的过程忽略了延迟加载机制导致
在访问时候的代码:
一、Hibernate的延迟加载机制
在用hibernate底层访问数据库的过程忽略了延迟加载机制导致
在访问时候的代码:
public New showNew(int id) { New newShow = null; Session session = null; Transaction tx = null; try { session = HibernateUtil.getSession(); tx = session.beginTransaction(); newShow = (New)session.load(New.class, id); tx.commit(); } catch (Exception e) { e.printStackTrace(); throw new DaoException("查询单条新闻访问底层数据库抛出异常!"); } finally{ HibernateUtil.closeSession(session); } return newShow; }
而配置的New.hbm.xml文件里是这样:
<hibernate-mapping package="com.demo"> <class name="com.demo.New" table="news" > <id name="id"> <generator class="native"/> </id> <property name="title"/> <property name="content"/> <property name="addTime" column="addtime"/> </class> </hibernate-mapping>
hibernate的lazy策略是打开的,若没有设class的lazy值(true、false、extra)就会延迟加载直到在session打开的情况,要使用newShow对像时候才会被创建,所以没有得到newShow对象也就是这个原因了。
改正策略很简单,就是在xml文件的class标签后添加lazy="false"就OK了。
相关文章推荐
- DF saveEngine
- 2.1.4 扫描器X-Scan查本机隐患
- 海量数据挖掘MMDS week5: 聚类clustering
- 海量数据挖掘MMDS week5: 聚类clustering
- Vim pre-work
- unity3d之UIPlayTween。
- Python访问限制
- 主流脚本编程语言大比拼 优缺点一目了然
- 需求工程
- 上传列表集合wsp包
- 详解CSS盒模型
- 从0开始<十>:atof 函数的简单实现
- php call_user_func()函数
- Linux网络查看命令
- 【linux】系统初始化的shell脚本
- Move Zeroes
- 图像拼接(不投影到柱面)(渐入渐出融合) matlab程序
- java线程
- 小学奥数 回文数个数
- 第九周 10.26---11.1