猜測一: update()后, 不用關閉session嗎?  猜測二: loadBoard(Long id), 需要的是Long型參數,  而在action里調用時,傳的是String類型, 貌似跟[Hibernate题目:指出一下代码哪里错误使用了Hibernate。]無關.
 
 猜測三:  return session.load(Board.class, id); 應該改成  return (Board)session.load(Board.class, id);  //轉換 說點無關的話: 如果是面試, 不知道確切答案時, 可以跟面試官談談關于hibernate的其他知識..  呵呵``` 關注答案ing...

解决方案 »

  1.   

       
     public void updateBoard(Board board) {    
            Session session = HibernateUtil.currentSession();     
            session.update(board);    
        } 要加一个事务进行处理其它的杰下继续,,哈
      

  2.   

          Board board = boardDao.loadBoard(id);    
            board.setName(name);    
            board.setDescription(description);    
            boardDao.updateBoard(board);   这段代码是在非事务的条件下执行的,应该在
    public void updateBoard(Long id, String name, String description) {  
    后面启动事务
    在结束时,提交事务
      

  3.   

    大家好,小弟这里还有一个Hibernate的问题,数据库有二张表(Order,Item),它们的关系是一对多(一个订单对应多个项),在Order类中有一个Set类型的items属性,Hibernate配置文件items元素的延迟加载属性为true,当我用Session对像加载了一个Order对像.假设这个对像的items属性里存有N个Item对像.在我关闭Session以后.当我通过Order对像得到相关联的Item对像.再去调用Item的getName()方法时,会报一个异常,请教一下,这是什么原因???是否是要重新将这个Order对像加载到Session缓存中才可以?
    PS:我把延迟加载属性设为false就好了.