`

自动反射对象中的属性组装成json,no session or session was closed

    博客分类:
  • JAVA
阅读更多

我有一个自动生成json的代码,就是通过反射所有的属性读取成json,但是由于我的bean是hibernate查询出来的bean,存在延时加载的对象时提示no session or session was closed错误信息,当然提示信息时很正常的,因为还没有加载的对象,到了Action中的时候,会话已经关系,如果解决这个问题

 

其实主要是通过代码进行分析,hibernate采用的cglib进行的对象的代理,只要能够判断出来他的类型就可以进行区别对待了,这里进行了代码的编写,通过反射取出一个对象的属性,然后判断这个属性的值的类型(注意一定不要使用取出来的值,包括toString也不行),判断是否是PO类型,如果是说明是延时加载的,自己进行处理就可以了,因为延时加载的目的就是不让他在前台显示i,所以可以过滤掉就可以了。

 

    protected Object hibernateConvert(Object bean) {
        if(bean instanceof HibernateProxy){
            LazyInitializer lazyInitializer = ((HibernateProxy)bean).getHibernateLazyInitializer();
            if(lazyInitializer.isUninitialized()){ 
                //未初始化的处理 ,可以只是读取它的标志

                lazyInitializer.getIdentifier();
            }else 
                //已经初始化,可以直接读取初始化的值

               lazyInitializer.getImplementation();
        }
        if(bean instanceof PersistentSet || bean instanceof PersistentList){
            return new String[]{}; //对于集合Set类型的,由于没有读取出来,所以前台也不需要显示,直接赋空值
        }
        return bean;         //其他的非Hibernate的对象,当正常对象处理
    }

 

所有取出来的对象的值都经过这个方法进行处理,取得对象以后,在进行操作,这样就不会提示上面的错误信息了

 

天天碰新问题,天天解决新问题,。。。。。

分享到:
评论
1 楼 jitabc 2010-01-08  
open session in view

相关推荐

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    javascript对象转换成json

    在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...

    Java组装json和java解析json数组

    附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据

    利用反射实现对象转json格式字符串

    但是,如果我们想通过反射实现这个功能,我们需要遍历对象的所有属性并将其映射到JSON格式。 以下是一个简化的`JsonUtils`类可能的实现: ```java import java.lang.reflect.Field; import java.util.HashMap; ...

    feature转化为Json对象

    在将 Feature 对象转换为 Json 对象时,我们需要将 Geometry 对象和属性信息分别转换为 Json 文本。下面是一个简单的实现代码: 首先,我们需要提取 Feature 对象的 Geometry 对象,并将其转换为 Json 对象。我们...

    解决javascript组装json的繁琐问题

    在JavaScript开发中,数据交换通常涉及JSON(JavaScript Object Notation)格式,因为它轻量级、易于阅读和编写,同时也被广泛支持。然而,处理JSON的组装过程可能会变得繁琐,尤其是在需要构建复杂的数据结构时。本...

    组装JSONObject(自动)

    传入实体类对象,自动组装成JSON对象。

    基于反射机制实现Java对象向Json数据的转换.pdf

    3. 使用JSON库进行转换:将获取到的对象属性信息构建成JSON结构的任务,通常会交给现成的JSON处理库来完成。如Jackson、Gson等库提供了丰富的API来支持这一过程。通过调用相应的序列化方法,可以将对象的属性信息...

    Delphi LiveBinding对象及对象序列化为JSON的例子

    在Delphi编程环境中,LiveBinding是一种强大的特性,它允许开发者实时地将对象的属性与界面上的组件连接起来,使得用户界面的交互可以直接反映到对象的状态上。在"Delphi LiveBinding对象及对象序列化为JSON的例子...

    利用反射机制对象转JSON

    利用Java的反射机制和json-lib包进行对象转JSON,包括set,list,object等,只需要对util类进行对应的配置即可。在对象转json的时候经常会出现对象持有set,list,date类型时会发生递归无限循环的情况,此代码完美...

    易语言类_json置属性例程

    类_json置属性例程

    json转对象数组与对象数组转json --Java

    2. **解析JSON字符串**:使用`JSONArray.fromObject()`方法将JSON字符串转换成`JSONArray`对象。 3. **配置JsonConfig**:创建一个`JsonConfig`实例,并设置相应的属性,比如指定数组模式和根对象类型。 4. **转换为...

    对象转换成JSON和Map

    "对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...

    Java反射函数机制实现List转换Json

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括获取类的信息、创建对象、调用方法以及访问和...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

    json字符串转换c++类对象

    在C++编程中,将JSON字符串转换为C++类对象是一项常见的任务,特别是在处理网络通信、数据存储或配置文件时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析...

    json转换jsonschema

    2. **属性(Properties)**:在对象类型中,可以定义各个属性及其对应的JSON Schema,以约束每个属性的值。 3. **模式(Pattern)**:允许设置正则表达式来验证字符串的格式。 4. **最大值/最小值(Maximum/...

    使用反射将json自动装配到javaBean中

    使用反射将json自动装配到javaBean中

    js将excel转化成json 对象

    在前端开发中,有时我们需要处理来自用户上传的Excel文件数据,并将其转化为JSON对象以便进一步处理或与后端交互。这个过程通常涉及到文件读取、数据解析以及格式转换。以下是一些关于如何使用JavaScript实现这一...

    实体类反射非空赋值,AjaxJson工具类

    在“实体类反射非空赋值,AjaxJson工具类”这个主题中,我们将探讨如何使用反射来安全地为实体类的属性赋值,并结合Ajax与JSON进行数据的转换和交互。 首先,让我们深入了解反射的概念。Java反射API提供了Class类,...

Global site tag (gtag.js) - Google Analytics