kanyun123 2017-01-12 01:52 采纳率: 100%
浏览 1483
已采纳

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对象了。

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 powerbulider 导入excel文件,显示不完整
  • ¥30 单片机实验pc软件完全,可以私我商议
  • ¥20 #关于multisim绘图遇到的问题
  • ¥15 用keil调试程序保证结果进行led相关闪烁
  • ¥15 paddle训练自己的数据loss降不下去
  • ¥20 用matlab的pdetool解决以下三个问题
  • ¥15 单个福来轮的平衡与侧向滑动是如何做到的?
  • ¥15 嵌入式Linux固件,能直接告诉我crc32校验的区域在哪不,内核的校验我已经找到了,uboot没有
  • ¥20 h3c静态路要求有详细过程
  • ¥15 调制识别中输入为时频图,星座图,眼图等