我的HQL语句是这样写的:
select c.userID,c.departmentCode,c.userCode,c.userName,c.password,c.DeptVO.departmentName FROM UserVO as c Left join c.DeptVO
打印出来是这样,我跟本没有什么userID异常转换的错啊``,是不是我页面上不能直接写${userList.userID}呢
 Hibernate: select top 10 uservo0_.userID as col_0_0_, uservo0_.departmentCode as col_1_0_, uservo0_.userCode as col_2_0_, uservo0_.userName as col_3_0_, uservo0_.password as col_4_0_, deptvo1_.departmentName as col_5_0_ from shilikaifa.dbo.userd uservo0_ left outer join shilikaifa.dbo.Department deptvo1_ on uservo0_.departmentCode=deptvo1_.departmentID
09:55:35,781 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.NumberFormatException: For input string: "userID"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at javax.el.ArrayELResolver.coerce(ArrayELResolver.java:153)
at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:45)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:925)
at org.apache.jsp.jsp.user.queryuser_jsp._jspService(queryuser_jsp.java:291)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:196)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.shili2.filter.EncodingFilter.doFilter(EncodingFilter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    我也知道是这里,但是我这个List不知道该怎么取啊??????
      

  2.   

    select c.userID,c.departmentCode,c.userCode,c.userName,c.password,c.DeptVO.departmentName FROM UserVO as c Left join c.DeptVO这个LIST怎么取????????????????大哥们帮帮忙把
      

  3.   

    你这样用了。说明放入到list中去是Object[]数组的形式了。
      

  4.   

    引用你的东西:打印出来是这样,我跟本没有什么userID异常转换的错啊,是不是我页面上不能直接写${userList.userID}呢
    如果没猜错的话,${userList.userID}中的userList应该取到的是一个user的集合,所以取不到userID应该这么写,用一个JSTL的核心标签库,如下循环取出:
    <c:forEach items="requestScope.userList" var="user">
    ......
    用户ID:${user.userID}
    ......
    </c:forEach>
      

  5.   

    public List queryUser(int currentPage, int lineSize) throws Exception {
    List all = null;
    String hql = "FROM UserVO as c Left join c.DeptVO";
    Query q = super.getSession().createQuery(hql);
    q.setFirstResult((currentPage - 1) * lineSize);
    q.setMaxResults(lineSize);
    all = q.list();
    return all;
    }
    我的DAOIMPL方法是上面这个
    而我的目的就是取出UserVO里的东西userID,userCode,userName我在ACTION里写
    UserVO userVO = new UserVO();
    userList = userDao.queryUser(currentPage, lineSize);
    for(int i=0;i<userList.size();i++)    
    {    
     userVO = (UserVO)userList.get(i);    
     System.out.println("id "+userVO.getUserID()+"55555555555555555555");        }   
    报错说 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.shili2.vo.UserVO
    我该怎么办?????
    我不能转化为UserVO了怎么取出里面的东西?????
      

  6.   

    6楼我是取不到UserVO啊,我的list里面还有有USERVO,DEPTVO本来我是想把DEPTVO放到USERVO里的,可是出现了这个不能用userVO = (UserVO)userList.get(i);   
    报的错是java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.shili2.vo.UserVO
      

  7.   


    是这样啊???有两种解决方法:
    ①把你的HQL语句join后加个fetch字段,比如你原来的hql语句是:
    String hql = "FROM UserVO as c Left join c.DeptVO";
    改成:
    String hql = "FROM UserVO as c Left join fetch c.DeptVO";此时检索出来的userList就是UserVO类型的List建议你用时泛型:List<UserVO> userList;②比较麻烦,思路是将q.list()返回的List调用.iterator()转换成Iterator iterator.
    然后再将迭代器iterator中的每一项,强制转换为Object[] obj数组.
    然后再将obj数组的一个元素强制转换为(UserVO)obj[0].建议你使用第①中方法.个人认为比较简单.