一亿个衣的日常吧 关注:6贴子:280
  • 1回复贴,共1

hql使用时的一点注意

只看楼主收藏回复

比如:
select s.id,s.name,sc.score from Student as s,Score as sc where s.id = sc.userId;
平时我们查询的时候,例如:“from Student ”查询的结果集 封装的全都是student对象,但是如上,执行的结果集里面不是对象,而是一系列数组。需要转换成需要的样式。


IP属地:河南1楼2016-03-10 18:52回复
    需要将查询的结果集 进行一下转换:
    List stuList = scoreService.findAllScore(queryScore, null); // 返回的结果集
    if(stuList != null && stuList.size()>0){
    list = new LinkedList();
    StudentScore st;
    for(int i = 0; i < stuList.size();i++){
    st = new StudentScore();
    Object[] object = (Object[])stuList.get(i);// 每行记录不在是一个对象 而是一个数组
    String userId = (String)object[0];
    String username = (String)object[1];
    String truename = (String)object[2];
    String sex = (String)object[3];
    String idnum = (String)object[4];
    String level = (String)object[5];
    Double sumScore = Double.parseDouble(String.valueOf(object[6]));
    String paperId = (String)object[7];
    // 重新封装在一个javabean里面
    st.setUserId(userId);
    st.setUsername(username);
    st.setTruename(truename);
    st.setIdnum(idnum);
    st.setLevel(DictSwitch.getValue("DICT_LEVEL",level));
    st.setSex(DictSwitch.getValue("DICT_SEX",sex));
    st.setPaperId(paperId);
    st.setSumScore(sumScore);
    st.setExamplace(DictSwitch.getValue("DICT_EXAMSTATION",examplace));
    list.add(st); // 最终封装在list中 传到前台。
    }


    IP属地:河南2楼2016-03-10 18:52
    回复