我正在使用struts,hibernate和jsp開發我的網站。我曾打電話的函數,而在我的DAO頁從我的操作頁面這樣的:java class cast異常錯誤
private List<Order> salesDetails = new ArrayList();
salesDetails = doctorDao.getInstance().getDoctorSalesDetails(SessionObj.getId(),activityGraph);
和吾道功能我寫了這樣的代碼
public List getDoctorSalesDetails(int id,int activityGraph){
List<Order> doctorSalesDetails=new ArrayList();
try{
SessionFactory sessionFactory =
(SessionFactory) ServletActionContext.getServletContext().getAttribute(HibernateListener.KEY_NAME);
Session Hibernatesession = sessionFactory.openSession();
Hibernatesession.beginTransaction();
doctorSalesDetails = Hibernatesession.createSQLQuery("SELECT total_amount,created_at FROM `order` WHERE created_at > DATE_SUB(curdate(),INTERVAL "+activityGraph+" DAY) AND doctor_id = "+id+" GROUP BY created_at").list();
Hibernatesession.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
}
return doctorSalesDetails;
}
查詢結果成功地在這裏工作。問題是,當我從我的行動頁面訪問返回變量是這樣的:
try{
for(Order o: salesDetails) {
System.out.println("Total amount="+o.getCreatedAt());
}
}catch(Exception e){
e.printStackTrace();
}
它會導致以下錯誤:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.myDrDirect.hbmobj.Order
at com.myDrDirect.doctor.action.DoctorDashBoardActivity.getDashBoardActivityDetails(DoctorDashBoardActivity.java:36)
可能是什麼問題?
你是對的Hibernate SQLQUery函數返回不同格式的數據,即使我從訂單表中檢索數據。我想我需要改變查詢。不管怎樣,謝謝。 – anoop 2011-12-26 14:57:56
歡迎來到Anoop .. – Sabya 2011-12-26 16:34:47