kanyun123
2017-01-12 01:52
采纳率: 50%
浏览 1.5k
已采纳

java hibernate返回嵌套对象如何放入集合

java Web项目,用两张表,试题表,(字段:id,题干) 试题选项表 (字段:id,外键,选项内容),此处应该知道两个表是主外键关联,且为一对多的关系,而且项目中我用的是hibernate来作为持久层,那么在试题表的实体类里面,包含了题干,以及试题选项的对象(set集合),相信用过hibernate的都知道,我用hql查询试题表的时候,可以吧选项对象同时查询出来,但是我需要一个个的遍历,现在的问题就是,我已经把结果都打印出来(包括试题题干,以及对应的选项的内容,图片显示的即是遍历的代码,但是由于对象嵌套的关系我并不知道怎么放进集合),但是我想把遍历出来的结果放进集合里面,返回json到前台,前台用的html和js,所以现在的问题是,我有很多的试题,每个试题又包含若干的对象,同时我又不能返回对象,我需要取到对象相应的值,来放进集合~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qq695938675 2017-01-12 02:21
    已采纳

    读了半天有点乱,试题表和选项表是一对多的关联关系,试题表是一方。用hql查询出来的就是试题表的集合 List questions,
    把这个集合拿到页面就行了啊。如果说格式需要改变或者内容需要变更,那么遍历重新封装。

    点赞 打赏 评论
  • 编程爱好者熊浪 2017-01-12 03:48

    就是一个试题对象里面包含了一个set集合的题目信息,之后返回json。"{'试题表':1,'试题':[{'试题类别':'A','试题难度':'B','试题种类':'C'},{'试题类别':'a','试题难度':'b','试题种类':'c'}]}"最外层代表你查到了那张试题表,试题代表你查到的这张表的set集合。
    那些中文最好用英文单词,第一步,通过查询到的值,把它组装成上面的字符串。
    StringBuffer sb=new StringBuffer();
    sb.appen("{");
    for (int i=0,len=list.size();i<len;i++){
    sb.append("'试题表':");
    sb.appen(list.get(0).getName());
    sb.append(",");
    sb.append("'试题':[{");
    if(list.getSet()!=null){
    for(int j=0,lens=list.getSet().size();j<lens;j++){
    sb.append("'试题类别':");
    sb.append(list.getSet().getType());
    sb.append(",");
    sb.append("'试题难度':");
    sb.append(list.getSet().getName());
    sb.append(",");
    sb.append("'试题种类':");
    sb.append(list.getSet().getTypeCd());
    }
    }
    sb.append("}]");
    }
    sb.append("}");

    JSONObject jsonObject = JSONObject.fromObject(sb.toString());这时候就获得了一个json对象了。

    点赞 打赏 评论

相关推荐 更多相似问题