浏览 1510 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-28
以前项目时间紧急,采用了治标不治本的紧急应对方法:将那些延迟加载的对象都用一个默认构造方法的对象来代替,但这样不利用复用。 在网上以Positioned Update not supported为关键字搜索了一下,发现了一篇很有用的文章,文本也提到这个问题,并给出了解决方法。不过我却发现文本提到的jsonplugin和我们项目中使用的jsonplugin有些地方不太相同,但它的思路都是一样的。沿用这个思路应该就可以解决问题了。 思路如下: 1、判断这个对象是否由cglib生成的。代码如下: boolean isCreateByCGLIB = clazz.getName().indexOf("$$EnhancerByCGLIB$$") > -1 ? true : false; 如果此对象确实是由cglib生成的,那么我们取此对象的基类,这一步很关键,因为通过取得此对象的基类,我们就忽略了所有由cglib生成的跟hibernate相关的属性。 2、通过反射,取得此对象的所有继续于基类的属性。 3、通过反射,取得此对象的所有get方法器(这一步不能省,不然出来的属性就少了)。 4、输出json。 问题解决,开源的力量就是伟大。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/visualcatsharp/archive/2008/12/22/3580225.aspx 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |