随笔-348  评论-598  文章-0  trackbacks-0

今天写webwork+spring+hibernate的时候碰到了这个问题

java.lang.NullPointerException
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:
372)
这个问题出得很莫名其妙,我在用find方法找数据的时候,如果数据库中不存在这条记录,那么代码一切正常,但如果存在相应记录就会抛出上面的异常,搜了一圈,首先在国外的网站上找到一个方法
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel
主要说的是问题出在CGLib上面,修正一下就可以了,下载中也给出了patch,我没有试过,
我看到了最后一条评论,直接更新CGlib到2.2beta就可以了。我试了一下,问题解决了。
在搜索过程中,JavaEye有个帖子也提到了这个问题,解决办法除了上面那个,还有人说可以
设置相关表的lazy="false"解决问题,我没有尝试过,大家可以看看,各取所需。


---------------------------------------------------------
专注移动开发

Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2007-10-14 16:55 TiGERTiAN 阅读(7523) 评论(27)  编辑  收藏 所属分类: JavaWebWork

评论:
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2007-11-27 10:33 | 惠万鹏
qy请问如何把CGlib 更新到2.2beta,我的smn是hwpok@hotmail.com.望赐教~~~  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2007-11-27 13:12 | 惠万鹏
是不是要下一个包放把hib里~~  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2007-11-27 13:48 | 惠万鹏
q 设lazy="false"我试成功了,可以更改为cg,我没有成功...请赐教  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2007-11-27 14:21 | TiGERTiAN
@惠万鹏
具体如何操作我忘记了。。好像删除原来的,把新版本的附加进取就可以了。。你可以搜索下。。  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-01-26 15:07 | PangSir
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-02-14 11:36 | 盗宝贼
   使用hibernate3.1把cglib从2.1.3更新到2.2.beta1了。但是问题还是   没解决。使用lazy="false"可以。请教在更新cglib的时候要注意什么问题
   吗?  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-02-14 11:38 | 盗宝贼
还想请问下lazy="false"到底起到什么作用?  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-02-15 00:17 | TiGERTiAN
@盗宝贼
我有点记不清楚了,下载一个重新替换一下就ok了,lazy="false"就是关闭lazy mode  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法[未登录] 2008-04-05 10:02 |
我两种方法都试过了,怎么还是不行,关于升级cglib是咱个升的?我有点郁闷!!
加我Q吧,谢谢!758047874  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-05-23 17:09 | ccgkren
谢谢,两种方法都可以!  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-05-23 20:00 | TiGERTiAN
@ccgkren
不客气,能有帮助最好了!  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-05-26 21:32 | TonyChen
包冲突!  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-06-25 09:42 | 666
搞定
  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-07-24 07:58 | xiaoliu
大哥 CGlib 2.2beta 网上根本找不到啊 你们谁有啊? 发给我下 邮箱
xiaoliu_window@126.com  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-07-27 09:08 | Java_do
请问lazy="false"是在那边添加的呢?@惠万鹏
  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-09-11 17:02 | rayson
Thank you very much.!   回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2008-09-30 17:07 | ttee
@Java_do
是在一对多关系那里配置lazy="false"  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-02-07 20:20 | 朋友
同意楼上,我证实过的。如果延迟加载的话,那么跟的参数就会是一个空引用。所以就报空指针异常。  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-04-22 19:17 | 我的还报错
java.lang.NullPointerException
org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)


我把那个包也更新了。lazy也设为false了@朋友
  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-04-22 19:17 | 我的还报错
java.lang.NullPointerException
org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)


我把那个包也更新了。lazy也设为false了@朋友
  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法[未登录] 2009-05-25 14:46 | xiaoyu
我也刚遇到这个问题,确实需要升级cglib包到2.2版本,删除2.13版本,一切OK!  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-06-28 16:08 | 基本原理
cglib.jar 包冲突。  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-07-19 00:03 | oil painting frame
方法很多哦  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-07-19 00:04 | oil painting
学习  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-08-10 13:39 | QQ:262010202
lazy="false",性能怎么样呢?大批量数据恐怕不妥吧?  回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2009-12-12 01:41 | maliwei
哥哥 太谢谢你了!!!好感动啊 lazy=“false” 多么简单而又多么重要   回复  更多评论
  
# re: hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)异常的解决方法 2014-11-23 10:17 | 姜友瑶
我是在删除的时候报这样的错误,也试过大家说的方法感觉还是不对,如果取消懒加载还是不可取,如果取消了懒加载opensessioninview就没有意义了,所以我是这样处理的
如果是在删除有外键的记录出现这样的情况可以吧删除的方法改写成
public void deleteObjectByIDs(Serializable... ids) {
for (int i = 0; ids != null && i < ids.length; i++) {
final String hql="delete "+entiry.getName()+" where deId='"+ids[i]+"'";
this.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query=session.createQuery(hql);
query.executeUpdate();
return null;

}
});
}  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: