使用HibernateTemplate,当返回的字段跟model不一致时的处理情况

来源:互联网 发布:网络歌手紫菱个人资料 编辑:程序博客网 时间:2024/05/21 04:21

public List<OnlineCustomerInforDTO> getOnlineMembersByTime(String beginTime, String endTime) {

final String hql = "select coi.email, count(coi.id) as onlineTimes from CustomerOnlineInfor coi where coi.beginDate between '" 

+ beginTime + "' and '" + endTime  + "' group by coi.email ";

List<OnlineCustomerInforDTO> onlineDTOList = null;

onlineDTOList = (List<OnlineCustomerInforDTO>) hibernateTemplate.execute(new HibernateCallback() {

public Object doInHibernate(Session session) throws HibernateException, SQLException {

  List<OnlineCustomerInforDTO> onlineDTOListtemp = new ArrayList<OnlineCustomerInforDTO>();

                        Query query = session.createQuery(hql);    //由session执行hql语句,返回Query类型对象

//for 循环获取query的值并存入OnlineCustomerInforDTO对象中,然后将OnlineCustomerInforDTO对象add到list中

// 然后返回 list

for(Object o : query.list()) {

Object[] array = (Object[])o;

OnlineCustomerInforDTO onlineDTO = new OnlineCustomerInforDTO();

onlineDTO.setEmail(array[0].toString());

onlineDTO.setOnlineTimes(Long.parseLong(array[1].toString()));

onlineDTOListtemp.add(onlineDTO);

}

return onlineDTOListtemp;

}

});

return onlineDTOList;

}