load方法在延迟加载时可能出现的错误。
2009-08-13 10:46
274 查看
load方法与get方法不同,对于数据库表中不存在的id, get方法返回null,load方法则报出ObjectNotFoundException异常。因为load方法默认的认为该id一定是在数据库表中存在的。
如果在dao中要利用load方法检索对象的话,那么就要小心它可能的异常,可以这么来处理:
这样的话,如果查询的id在表中不存在,那么会返回null。
可是,如果在类级别设置了延迟加载lazy="true",那么,在执行load方法的时候,是不会出现异常的。但是当在页面或者action等业务
类中调用对象的非主键属性时,这时hibernate才真正的发出查询请求,于是出现异常,但是该异常已经不能被捕捉到了,于是程序会发生
错误。解决这个的办法,要么去掉延迟加载,要么不用load方法。
如果在dao中要利用load方法检索对象的话,那么就要小心它可能的异常,可以这么来处理:
public Article findById(java.lang.Integer id) { log.debug("getting Article instance with id: " + id); try { Article instance = (Article) getHibernateTemplate().load( "cn.duoduo.hibernate.Article", id); return instance; } catch (Exception re) { log.error("get failed", re); return null; } }
这样的话,如果查询的id在表中不存在,那么会返回null。
可是,如果在类级别设置了延迟加载lazy="true",那么,在执行load方法的时候,是不会出现异常的。但是当在页面或者action等业务
类中调用对象的非主键属性时,这时hibernate才真正的发出查询请求,于是出现异常,但是该异常已经不能被捕捉到了,于是程序会发生
错误。解决这个的办法,要么去掉延迟加载,要么不用load方法。
相关文章推荐
- load方法在延迟加载时可能出现的错误。
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- 又一个因为延迟加载出现的错误Hibernate:could not initialize proxy - no Session
- Extjs4.0.7 中 TreeStore.load()出现 url undefine 错误的解决方法
- Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- SharePoint 2010 回收IIS 应用程序池中出现错误:provider load failure 解决方法
- 用VS2010自带的Library Package Manager安装EFCodeFirst出现“无法加载一个或多个请求的类型”错误的解决方法
- 关于Service方法调用时出现org.apache.ibatis.binding.BindingException错误的可能原因
- opencv 使用cvload加载xml出现错误原因解析及方法
- hibernate对象关系映射“之”延迟加载之get、load方法的区别
- VB6加载MSCOMCTL.OCX出现“不能加载''”错误的处理方法汇总
- 两种图片延迟加载的方法总结jquery.scrollLoading.js与jquery.lazyload.js---转载
- 实验中可能出现的错误及其解决方法
- 关于android studio启动时加载项目gradle build出现错误的解决方法
- 加载struts,spring,hibernate出现404错误可能的原因
- Scanner类中nextLine()方法与next()或nextInt()联用时可能出现一个常见的错误
- “安装 SharePoint 应用程序”中出现错误: 未在此网站上启用应用程序的旁加载 解决方法
- TZipMaster出现错误:failed to load 'unzdll.dll'的解决方法
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法