action 代码
public ActionForward editInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
 String number=request.getParameter("number");
 SelectDAO sado=new SelectDAO();
 List stuidlist=sado.qstuid(number);
 HttpSession session=request.getSession();
         session.removeAttribute("stuidlist");
     session.setAttribute("stuidlist",stuidlist);
try { 
request.getRequestDispatcher("upmyinfo.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
DAO 代码
public List qstuid(String number)
{
List stuidlist=null;
this.session=HibernateSessionFactory.getSession();
stuidlist=this.session.createQuery("select s.name,c.garde from StuInfo as s,ClassInfo as c where s.SClass=c.cname and s.number="+number).list();
this.session.close();
return stuidlist;
} 页面代码为 
<c:forEach items="${stuidlist }" var="stu"><br>
<p>name:<input type="text" value="${stu.name }" />
<p>年级:<input type="text" readonly="readonly" value="${stu.garde }" />
</c:forEach>出现问题 Caused by: java.lang.NumberFormatException: For input string: "name"想进行两个表的联合查询,最后把查询结果存到session中,不过 有个问题是 我两个表都有ID, 不过都不需要取出来,我在页面取的时候就出现问题, 请问是什么引起的? 网上查看说是数据转换问题,不过我根本就没有进行数据转换,是不是hql语句的问题??

解决方案 »

  1.   

    Caused by: java.lang.NumberFormatException: For input string: "name"
    name字符串不能转化为数字
      

  2.   


    我知道这个的意思,不过我没有将name转换为数字啊
      

  3.   

    打印下number 的值是多少,
    stuidlist=this.session.createQuery("select s.name,c.garde from StuInfo as s,ClassInfo as c where s.SClass=c.cname and s.number="+number).list();
      

  4.   

    Hibernate: 
        select
            stuinfo0_.name as col_0_0_,
            classinfo1_.garde as col_1_0_ 
        from
            studentInfo.dbo.stu_info stuinfo0_,
            studentInfo.dbo.class_info classinfo1_ 
        where
            stuinfo0_.s_class=classinfo1_.cname 
            and stuinfo0_.number=2007371824
      

  5.   

    一般的联合查询时通常有两种选择
    1.在hibernate配置中使用外键配置  就是<many-to-one   之类的,
    2.使用原生态的sql查询  就是session.createSqlQuery  这样返回的list中是一个Object数组 
      

  6.   

    先把传进去的num变成int类型就OK了
      

  7.   

    stuidlist=this.session.createQuery("select s.name,c.garde from StuInfo as s,ClassInfo as c where s.SClass=c.cname and s.number="+number).list();
    你这里的StuInfo里属性number是String 类型吗?
      

  8.   


     很对 数据库是char型 的
      

  9.   

      与你数据没关系的,看你的实体是什么类型的
        实体如果是char,那这就是问题的所在了。
         OVER!