我先在数据库中加了几条column,然后用deleteAction删除,deleteAction里有第一个方法,显示的sql如下:
Hibernate: select this_.id as id3_0_, this_.columnName as columnName3_0_, this_.columnNumber as columnNu3_3_0_ from CWebDb.dbo.[column] this_ where (this_.columnNumber=?)
Hibernate: delete from CWebDb.dbo.[column] where id=?Hibernate: select this_.id as id3_0_, this_.columnName as columnName3_0_, this_.columnNumber as columnNu3_3_0_ from CWebDb.dbo.[column] this_        //注意这个SQL语句
然后我去试添加column的方法,显示的sql如下
Hibernate: insert into CWebDb.dbo.[column] (columnName, columnNumber) values (?, ?)Hibernate: select top 1 this_.id as id3_0_, this_.columnName as columnName3_0_, this_.columnNumber as columnNu3_3_0_ from CWebDb.dbo.[column] this_             //这句和上一个语句的变化调用的同样是第一个方法,第二次查询却变出了个top1,我很郁闷。。结果它每次都只查出一个来。添加几次都是。重新启动服务器,又一下子把所有的都查出来了。。然后再添加又变成这样了。我估计是this.getHibernateTemplate().loadAll(Column.class); 这个的问题,但是不知道怎么解决

解决方案 »

  1.   

    哦,第二次查询还多了一句,完整的应该是:Hibernate: select top 1 column0_.id as id3_, column0_.columnName as columnName3_, column0_.columnNumber as columnNu3_3_ from CWebDb.dbo.[column] column0_ order by column0_.columnNumber desc
    3 //输出columnNumber
    Hibernate: insert into CWebDb.dbo.[column] (columnName, columnNumber) values (?, ?)Hibernate: select top 1 this_.id as id3_0_, this_.columnName as columnName3_0_, this_.columnNumber as columnNu3_3_0_ from CWebDb.dbo.[column] this_
    1 //输出查询结果集的大小,因为是top1所以每次都是1
      

  2.   

    我把deleteAction的代码也贴出来吧:
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    // TODO Auto-generated method stub
    try {
    int columnNumber=new Integer(request.getParameter("columnNumber")).intValue();
    c=new Column();
    c.setColumnNumber(columnNumber);
    c=(Column)columnService.findByExample(c).get(0);
    columnService.delate(c);
    this.findAllColumns(request);
    msg="操作成功";
    } catch (Exception e) {
    // TODO: handle exception
    msg="操作失败";
    e.printStackTrace();
    }
    request.setAttribute("msg", msg);
    return mapping.findForward("ok");
    }
    public void findAllColumns(HttpServletRequest request)
    {
    List list=(List)columnService.findAll();
    request.getSession().setAttribute("columns", list);
    }
    }