Hibernate异常org.hibernate.tuple.AbstractEntityTuplizer.createProxy解决方案

来源:互联网 发布:js多图片上传预览插件 编辑:程序博客网 时间:2024/06/14 08:07

光棍节的凌晨四点半,依然在忙碌,就为了一个很恶心的错误——org.hibernate.tuple.AbstractEntityTuplizer.createProxy异常

最近在用ssh做一个作业,应该算是我的最后一个作业了,因为前一阵做的练习少,所以ssh还是有点生疏,碰上点错误有时候就卡住了,不过最后证实今天碰上的这个异常确实不是我的错。

因为用到了ssh,所以Dao里用到操作都是由HibernateTemplate执行的,我本想用find(String QueryString)的方法通过HQL语句查询两张关联表的数据,可总是出一个异常,前几行基本是如下的样子

java.lang.NullPointerException
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:781)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:774)
at org.springframework.orm.hibernate3.HibernateTemplate$3.doInHibernate(HibernateTemplate.java:508)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:502)
at org.springframework.orm.hibernate3.HibernateTemplate.load(HibernateTemplate.java:496)

我再三确定我的表里数据正常,hbm.xml也没有写错,HQL语句也完全正确,可是还是不能正常运行。于是我去baidu查了一下,找到了几个解决方法,挨个试了,找到了适合我的解决方法。

在一个帖子中一个人提到了hibernate中的cglib-2.1.3.jar和spring中的cglib-nodep-2.1_3.jar相冲突会引起这个异常,于是我把cglib-2.1.3.jar删除了,问题就解决了。

另外我还看见一个版本的对这个异常处理,是要把hibernate中的cglib-2.1.3.jar升级为cglib-2.2.jar。但我试了下不成,估计是具体到其他的一些细节上的问题的处理方法。有需要的可以借鉴一下。

因为网上还提到需要配置hbm.xml为即时加载关联实体,而我的业务也确实是即使加载的,所以至于延迟加载是否会引起异常我没有尝试,也作为一个解决此异常的参考吧。

问题解决了,挺晚的了,睡觉了,祝单身的朋友光棍节快乐。

原创粉丝点击