public List<CelcomInfo> getService(){
StringBuffer sql = new StringBuffer()
.append("SELECT DISTINCT " +
"TI.Service " +
"FROM " +
"celcom_drptetl.celcom_transactioninfo TI " +
"WHERE " +
"TI.Service IS NOT NULL;");
List<Object[]> lstResult = this
.getHibernateTemplate()
.getSessionFactory()
.getCurrentSession()
.createSQLQuery(sql.toString())
.list();
List<CelcomInfo> celcomInfos = new ArrayList<CelcomInfo>();
for(int i = 0; i < lstRestult.size();i++){
//System.out.println(lstRestult.get(i));
CelcomInfo celcomInfo = new CelcomInfo();
celcomInfo.setService(lstRestult.get(i).toString());
celcomInfos.add(celcomInfo);
}
return celcomInfos;
}
运行报错java.lang.String cannot be cast to [Ljava.lang.Object
查来查去是由于sql执行后返回的是一列数据。不能发到Object[]
修改如下:去掉Object[]
public List<CelcomInfo> getService(){
StringBuffer sql = new StringBuffer()
.append("SELECT DISTINCT " +
"TI.Service " +
"FROM " +
"celcom_drptetl.celcom_transactioninfo TI " +
"WHERE " +
"TI.Service IS NOT NULL;");
List lstRestult = this
.getHibernateTemplate()
.getSessionFactory()
.getCurrentSession()
.createSQLQuery(sql.toString())
.list();
List<CelcomInfo> celcomInfos = new ArrayList<CelcomInfo>();
for(int i = 0; i < lstRestult.size();i++){
//System.out.println(lstRestult.get(i));
CelcomInfo celcomInfo = new CelcomInfo();
celcomInfo.setService(lstRestult.get(i).toString());
celcomInfos.add(celcomInfo);
}
return celcomInfos;
}