我要的效果是:前台Ajax点击查询按钮,后台把数据库查出的List对象集合封装成Json格式的String,Write到前台,无刷新打印..
    我的问题是:由于有Hibernate级联的加入...出现这样一种情况.  
    级联系关系:一个客户有多个订单,一个订单有多个商品.这种形式.
    但是由于我只需要打印List集合下面的对象(也就是客户对象).()..不需要客户下面的定单和商品.所以封装的时候我要的格式的[{customerId:"RRRR1",customerName:"JsonTest"},{customerId:"RRRR2",customerName:"JsonTest01"}]
    而Customer里面的一个Orders(订丹集合)是不需要出现在Json格式的字符串里的.
    这样的形式如何封装...我是把这个操作封装成一个方法,传入List<Object>,既然这是一个通用方法那么也有可能出现其他的对象,所以不能确定是哪一个对象..
    然后我用BeanInfo 和Method来操作...
    private String customerId = null;
    private String customerName = null;
    private Set orders = new HashSet();
我只需要取customerId 和customerId的value, 而不需要取orders这个set集合..
    我是以这种形式来取得key和value的
    PropertyDescriptor[] props = Introspector.getBeanInfo(users.getClass()).getPropertyDescriptors();
    props[n].getName(); //取得key
    props[n].getReadMethod() //取得value
    如果表不级联这个取法就没错,但是一旦有级联关系这个取法就报错...DTD文件不支持貌似..
    诚心希望能有高手指教一下.....指点一下出路..

解决方案 »

  1.   

    将hibernate的映射表设置为懒加载,应该就可以级联了,你可以试试。
      

  2.   

    LZ可以用两个BEAN 
    一个BEAN 
        private String customerId = null; 
        private String customerName = null; 
        private Set orders = new HashSet(); 
    第二个BEAN
        private String customerId = null; 
        private String customerName = null; 
    目前状况用第二个BEAN就好了 ..