以前用hibernate只用映射,不用关联.
    现在用关联发现很多问题..查完数据,要关闭session..但是设置了延迟加载的时候session关闭了,异常..
    网上有朋友说不用关闭,这样的话会不会有问题??
    有的说用spring的OpenSessionInViewFilter..
    如果不用spring的话,有什么好的办法??谢谢大家!~

解决方案 »

  1.   

    hibernate的关联是魔鬼.使用了,就等于自杀.
      

  2.   

    如果在你的应用中,一次请求的过程中使用了单一的一个HIbernate Session,在这种情况下,采用这个filter会产生一些以前没遇到的问题。特别需要注意的是通过
    Hibernate Session重新组织持久化对象之间关系的相关操作需要在请求的最开始进行。以免与已经加载的相同对象发生冲突。或者,我们可以通过指定"singleSession"="false"的方式把这个过滤器调到延期关闭模式。这样在一次请求的过程中不会使用一个单一的Session.每一次数据访问或事务相关操作都使用属于它自己的session(有点像不使用Open Session in View).这些session都被注册成延迟关闭模式,即使是在这一次的请求中它相关操作已经完成。