java – 为什么Spring在Hibernate抛出ObjectNotFoundException的情况下不会抛出DataAccessException?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为什么Spring在Hibernate抛出ObjectNotFoundException的情况下不会抛出DataAccessException?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2259字,纯文字阅读大概需要4分钟。
内容图文
![java – 为什么Spring在Hibernate抛出ObjectNotFoundException的情况下不会抛出DataAccessException?](/upload/InfoBanner/zyjiaocheng/790/257a9b630e9241069b8cbb72ac879e20.jpg)
为什么不Spring 3.0.4 HibernateTemplate方法load()抛出DataAccessException或更具体,ObjectRetrievalFailureException,如果Hibernate 3.3.2GA抛出ObjectNotFoundException?
2010-12-15 13:16:03,939 133247782 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO org.hibernate.event.def.DefaultLoadEventListener - Error performing load command
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.db.spgit.abstrack.model.ConsUsCustomMark#78445AAD8]
at org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:375) ~[hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:145) ~[hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179) ~[hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103) ~[hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) [hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:795) [hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:788) [hibernate-3.2.1.ga.jar:3.2.1.ga]
at org.springframework.orm.hibernate3.HibernateTemplate$3.doInHibernate(HibernateTemplate.java:558) [spring-orm-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) [spring-orm-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) [spring-orm-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:551) [spring-orm-3.0.4.RELEASE.jar:3.0.4.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:545) [spring-orm-3.0.4.RELEASE.jar:3.0.4.RELEASE]
解决方法:
记录异常,不一定抛出.你看到的是由hibernate完成的异常堆栈跟踪的日志信息级别.如果查看DefaultLoadEventListener的源代码(我的源代码中的第134行),您会注意到它记录异常然后重新抛出.
我们在这里看到的只是异常堆栈跟踪的日志 – 这里没有证据表明spring没有转换异常.
内容总结
以上是互联网集市为您收集整理的java – 为什么Spring在Hibernate抛出ObjectNotFoundException的情况下不会抛出DataAccessException?全部内容,希望文章能够帮你解决java – 为什么Spring在Hibernate抛出ObjectNotFoundException的情况下不会抛出DataAccessException?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。