if(result1.size()==0){
returnData.findNothing();
}else{
Iterator<TempResult> it = result1.iterator();
TempResult tempResult = null;
List result = new ArrayList();
while(it.hasNext()){
tempResult = it.next();
if(tempResult.getCaseNo()==null){
query = session.createQuery(hql_4_5_2)
.setLong("caseId", tempResult.getCaseId());
}else{
query = session.createQuery(hql_4_5_1)
.setLong("caseId", tempResult.getCaseId())
.setString("caseNo", tempResult.getCaseNo());
}
***??? ---》 result.addAll(query.list());
}
returnData.success(result.toArray());
}为什么result.addAll(query.list());是空的集合呢?

解决方案 »

  1.   

    TempResult tempResult = null; 
    找你的query
      

  2.   

    try {
    Session session = HibernateSessionFactory.getSession();
    Query query = session.createQuery(hql_1_3);
    List<TempResult> result1 =query.setString("No", No.trim()+"%")
    .setDate("endTime", endTime)
    .setDate("beginTime", beginTime)
    .list();
    System.out.println("size:"+result1.size());
    if(result1.size()==0){
    returnData.findNothing();
    }else{
    Iterator<TempResult> it = result1.iterator();
    TempResult tempResult = null;
    List result = new ArrayList();
    while(it.hasNext()){
    tempResult = it.next();
    if(tempResult.getCaseNo()==null){
    query = session.createQuery(hql_4_5_2)
    .setLong("caseId", tempResult.getCaseId());
    }else{
    query = session.createQuery(hql_4_5_1)
    .setLong("caseId", tempResult.getCaseId())
    .setString("caseNo", tempResult.getCaseNo());
    }
    result.addAll(query.list());
    Object[] object = result.toArray();
    int or=object.length;
    System.out.println(or);
    }
    returnData.success(result.toArray());
    }
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    returnData.exception();
    return returnData;
    }
      

  3.   

    public ReturnData queryForMarkNoWS(String No, Date beginTime, Date endTime) {
    System.out.println("Call Mathod : queryForMarkNoWS");
    String hql_1_3 = "select new TempResult( a.caseId, max(a.caseNo)) "+
    "from Insurancelist a "+
    "where a.caseId in (select a.serviceNo "+
    "from Tcpnsthistory a "+
    "where a.serviceNo in (select v.id.serviceNo  from  ViTcpnstcarinfoP v where  v.id.No like :No) "+
    "and a.caseDatetime <= :endTime "+
    "and a.caseDatetime >= :beginTime "+
    "and a.ifLast = 1) "+
    "and a.ifEffect <> 0 "+
    "group by a.caseId " ; String hql_4_5_1 = "select  d.serviceNo,a.insuranceType,a.caseNo, "+
              "to_char(d.reportDatetime, 'yyyy-mm-dd hh24:mi:ss'), " +
              "to_char(d.caseDatetime, 'yyyy-mm-dd hh24:mi:ss')," +
              "d.No, "+
              "c.insuranceId,d.accidents, d.ifLast,d.ifTemp, d.bizFlag "+
              "from Insurancelist a, Insurancelist c ,Tcpnsthistory d "+
              "where a.caseId = :caseId "+ //:caseId(b.service_no)
              "and a.caseNo = :caseNo "+      //:caseNo(b.case_no)
              "and a.caseId =c.caseId  and a.id<>c.id "+
              "and a.caseId = d.serviceNo " +
              "and d.ifLast = 1";
    String hql_4_5_2 = "select  d.serviceNo,a.insuranceType,a.caseNo, "+
     "to_char(d.caseDatetime, 'yyyy-mm-dd hh24:mi:ss')," +
     "d.No, "+
     "c.insuranceId,d.accidents, d.ifLast,d.ifTemp, d.bizFlag "+
     "from Insurancelist a, Insurancelist c ,Tcpnsthistory d "+
     "where a.caseId = :caseId "+ //:caseId(b.service_no) caseNo==null
     "and a.caseId =c.caseId  and a.id<>c.id "+
     "and a.caseId = d.serviceNo " +
     "and d.ifLast = 1";
    try {
    Session session = HibernateSessionFactory.getSession();
    Query query = session.createQuery(hql_1_3);
    List<TempResult> result1 =query.setString("No", No.trim()+"%")
    .setDate("endTime", endTime)
    .setDate("beginTime", beginTime)
    .list();
    System.out.println("size:"+result1.size());
    if(result1.size()==0){
    returnData.findNothing();
    }else{
    Iterator<TempResult> it = result1.iterator();
    TempResult tempResult = null;
    List result = new ArrayList();
    while(it.hasNext()){
    tempResult = it.next();
    if(tempResult.getCaseNo()==null){
    query = session.createQuery(hql_4_5_2)
    .setLong("caseId", tempResult.getCaseId());
    }else{
    query = session.createQuery(hql_4_5_1)
    .setLong("caseId", tempResult.getCaseId())
    .setString("caseNo", tempResult.getCaseNo());
    }
    result.addAll(query.list());
    Object[] object = result.toArray();
    int or=object.length;
    System.out.println(or);
    }
    returnData.success(result.toArray());
    }
    } catch (HibernateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    returnData.exception();
    return returnData;
    }
    return returnData;
    }
      

  4.   

    if(!query.list.isEmpty())
      result.addAll(query.list()); 
      

  5.   

    List的addAll要求被add的集合不能为空,否则抛空指针异常
      

  6.   

    打印长度是是有的
    但是就是
    result.addAll(query.list());
    Object[] object = result.toArray();
    int or=object.length;
    System.out.println(or); 
    都是0
    怎么回事啊