mysql
  • hibernate
  • struts
  • 2014-10-17 46 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(); 
    
    相关问题