hibernate sql query 时 别名

                           

hibernate sql query 时 别名无法mapping 的解决办法

 

 

public List getAllByPageTerMsg(PageInfoBO pageInfo,
   String terminalId) {
  StringBuilder sb=new StringBuilder();
  sb.append(" select ms.msgContext  as mc,ms.msgType  as mt,ms.examinationTime  as et,hb.GPSFlowrate  as gr, ");
  sb.append(" up.receiveTime  as rt,up.msgstate  as ms,ms.starttime  as st,ms.endtime  as ee,up.msgType  as mp,ms.address  as ar,ms.txtSize as ts,ms.photoSize as pz");
  sb.append(" from terminal ter ");
  sb.append(" left join  MsgSendTer  up on up.terminalId=ter.terminalId ");
  sb.append(" LEFT join MsgSend ms on ms.msgSendId=up.msgSendId ");
  sb.append(" left join (select hbtmp.Ter_TerminalId ,hbtmp.pagerNum, hbtmp.GPSFlowrate, ");
  sb.append(" max(hbtmp.heartbeattime) heartbeattime  from heartbeat hbtmp where hbtmp.Ter_TerminalId='"+terminalId+"' group by hbtmp.Ter_TerminalId ");
  sb.append(" order by hbtmp.Ter_TerminalId desc) hb on  hb.Ter_TerminalId=ter.terminalid ");
  sb.append(" where 1=1  and ter.terminalid='"+terminalId+"' ");
  Query query=this.getSession().createSQLQuery(sb.toString())
  .addScalar("mc",Hibernate.STRING).addScalar("mt",Hibernate.INTEGER)
  .addScalar("et",Hibernate.STRING).addScalar("gr",Hibernate.STRING)//.setResultSetMapping(Transformers)
  .addScalar("rt",Hibernate.STRING).addScalar("ms",Hibernate.INTEGER)
  .addScalar("st",Hibernate.STRING).addScalar("ee",Hibernate.STRING)
  .addScalar("mp",Hibernate.INTEGER).addScalar("ar",Hibernate.STRING)
  .addScalar("ts",Hibernate.STRING).addScalar("pz",Hibernate.STRING).setMaxResults(20);
  

  List lst=query.list();
  List resultLst=null;
  resultLst=new ArrayList();
  ShowTerMsgBO sbo=null;
  if(lst!=null && lst.size()>0){
   for (int i = 0; i < lst.size(); i++) {
   sbo=new ShowTerMsgBO();
   Object[] objArr=(Object[])lst.get(i);
   System.out.println(objArr[1]+"--------1");
   System.out.println(objArr[8]+"--------22");
   
      sbo.setCompanyName(objArr[0]!=null?objArr[0].toString():"");//消息内容
      sbo.setUseState(objArr[1]!=null?Integer.parseInt(objArr[1].toString()):0);//消息类型
      sbo.setPagerNum(objArr[2]!=null?objArr[2].toString().substring(0, 19):"");//发送时间
      sbo.setGPSFlowrate(objArr[3]!=null?objArr[3].toString()+"KB":"");//使用流量
      sbo.setCharNum(objArr[4]!=null?objArr[4].toString().substring(0, 19):"");//接收时间
      sbo.setCompanyType(objArr[5]!=null?Integer.parseInt(objArr[5].toString()):0);//是否成功
      sbo.setInitTimeStr(objArr[6]!=null?objArr[6].toString().substring(0, 11):"");//开始时间
      sbo.setSaleTimeStr(objArr[7]!=null?objArr[7].toString().substring(0, 11):"");//结束时间
      sbo.setHarMethod(objArr[8]!=null?Integer.parseInt(objArr[8].toString()):0);//信息类型 2图片、1内容
      sbo.setProductAddress(objArr[9]!=null?objArr[9].toString():"");//图片地址
      sbo.setTxtSize(objArr[10]!=null?objArr[10].toString()+"B":"");//文本流量
      sbo.setPhotoSize(objArr[11]!=null?objArr[11].toString()+"B":"");//图片流量
//      sbo.setMsgTypes(objArr[12]!=null?objArr[12].toString():"");//类型
      resultLst.add(sbo);
   }
  }
  return resultLst;
 }

 

 

其他见:http://www.blogjava.net/alex0927/articles/194737.html

http://hi.baidu.com/jifeer/item/ba1ec37e01d35a20d6a89c79

你可能感兴趣的:(java)