mysql
  • hibernate
  • struts
  • 2014-10-17 40 views 0 likes 
    0

    我想從hibernate框架的mysql數據庫中獲取記錄。爲了實現這一點,我寫了下面的代碼。如何從Hibernate查詢中識別生成的對象?

    List addresses = session.createQuery("Select P.address,P.personal_email,P.contact FROM PermanentAddress P,Employee E WHERE E.login_account='"+inf.getlogin_account()+"' AND E.employee_no=P.empno").list(); 
    for (Iterator iterator = addresses.iterator(); iterator.hasNext();){ 
        PermanentAddress pa= (PermanentAddress) iterator.next(); 
        ad.setpaddr(pa.getaddress()); 
        ad.setpemail(pa.getpersonal_email()); 
        ad.setpcontact(pa.getcontact()); 
        System.out.println(ad.getpemail()); 
    } 
    

    ,當我跑這個代碼我得到下面的錯誤

    javax.servlet.ServletException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.lms.model.PermanentAddress 
    org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545) 
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486) 
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    

    請給我帶路。

    +0

    請提供'PermanentAddress'映射文件 – 2014-10-17 07:13:54

    回答

    0

    在您的查詢中,您從PermanentAddress返回字段列表(P.address,P.personal_email,P.contact),而不是整個實體。試試這樣:

    List addresses = session.createQuery("Select P FROM PermanentAddress P,Employee E WHERE E.login_account = '" + inf.getlogin_account() + "' AND E.employee_no=P.empno").list(); 
    
    相關問題