你不妨听一下我的建议:
   你可以先把 finally 这部分去掉,因为当你没有去调用test() 之前,session就已经关闭了,所以得到的结果是这样的,你可以试一下,不用去关闭session。

解决方案 »

  1.   

    做hibernate必须关闭SESSION  否则。
    问题是   你的Customer customer 应该定义在TRY CATCH外部
      

  2.   

    抛出这个错误的主要原因我觉得并不是由于Session没有关闭造成的,这种问题我也遇到过,不过原因说不是很清楚,我用的hibernate3.0的lazy默认好像是true这个原因是没有初始化造成的,可以在session.close()之前把customer的一个属性输出来试一试,或者用Hibernate.initialize初始化,在或者干脆把lazy改为false行了。
      

  3.   

    Customer 定义在try外面也不成,我试过。
    在session.close()之前把customer的一个属性输出来再return,倒是可以
      

  4.   

    在你的 catch(Exception e) {
    if(tx != null) {
    tx.rollback();
    }
    里面先打印异常信息。看什么异常,估计是延迟加载的问题
      

  5.   

    用Hibernate.initialize初始化看看