用Hibernate做留言板,结果把留言回复添加提交后,再返回首页却没有看到回复,但是数据库里面已经添加进去了,可以看到数据,我刷新页面也不行,只有重启tomcat后才看到最新加进去的数据。有高手知道是什么原因吗?感激不尽

解决方案 »

  1.   

    我的dao类中的函数是:public List<Subject> AllSubject(){
    Session session=HibernateSessionFactory.getSession();
       /*建立Query查询*/
       Query  query=session.createQuery("from Subject");
        /*执行查询返回List集合*/
        List list=query.list();
    return list;
    }
    jsp中是这样调用的:
    SubjectDao s=new SubjectDao();
    List<Subject> l=s.AllSubject();
    out.println("<font color=blue size=5>留言主题:</font>");
    应该没错吧,能帮我看看是什么原因吗
      

  2.   

    哦·· 是这样的·· 我估计LZ是因为再做“提交”时没有把“显示”这个业务给做进去啊·· 你想想·· 提交是一个update请求·· 显示是一个query请求·· 你的业务代码的问题·· 你先再service层给这两个请求做成一个事务嘛·· ··
      

  3.   

    谢谢你告诉我方法。我显示做了,首页的jsp是这样的: 
    <% 
    SubjectDao s=new SubjectDao(); 
    List<Subject> l=s.AllSubject(); 
    out.println("<font color=blue size=5>留言主题:</font>"); for(int i=0;i<l.size();i++){ 
    out.println("<br><br>"+"<font color=blue size=4>主题: </font>"+l.get(i).getSname()+"<br>"); int j=1; 
    System.out.println(l.get(i).getReplies().size()); 
    if(j<=l.get(i).getReplies().size()){ 
    Iterator it=l.get(i).getReplies().iterator(); 
    while(it.hasNext()){ 
    Reply r=(Reply)it.next(); 
    out.println("   "+"<font color=blue size=4>回复"+j+":</font>"+r.getRname()+"<br>"); 
    j++; 


    out.println("<br>"); 
    out.println("             &n