2 kanyun123 kanyun123 于 2017.01.12 09:52 提问

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

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

2个回答

qq695938675
qq695938675   2017.01.12 10:21
已采纳

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

kanyun123
kanyun123 问题就是不知道怎么去封装
11 个月之前 回复
xionglangs
xionglangs   Rxr 2017.01.12 11: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对象了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!