我有实体类Note和Tag,一个Note对应多个Tag,在我的代码中我需要获取某一个Note,并对其做一些更新操作在存入数据库,但是又不希望将lazy设置为false,打算用强制加载的方法,Hibernate.initialize(XXXXXX);不知道这里的XXXX应该怎么写?我试过了Hibernate.initialize(note.getTags())但还是报collection is not associated with any session错,请高手指教,谢谢啦

解决方案 »

  1.   

    文档里有,就是这样写的.
    当然,我们可以通过强行调用cat.getSex()或者cat.getKittens().size()之类的方法来确保这一点。 但是这样的程序会造成读者的疑惑,也不符合通常的代码规范。 静态方法Hibernate.initialized() 为你的应用程序提供了一个便捷的途径来延迟加载集合或代理。 只要它的Session处于open状态,Hibernate.initialize(cat) 将会为cat强制对代理实例化。 同样,Hibernate.initialize( cat.getKittens() ) 对kittens的集合具有同样的
      

  2.   

    文档里有,就是这样写的.
    当然,我们可以通过强行调用cat.getSex()或者cat.getKittens().size()之类的方法来确保这一点。 但是这样的程序会造成读者的疑惑,也不符合通常的代码规范。 静态方法Hibernate.initialized() 为你的应用程序提供了一个便捷的途径来延迟加载集合或代理。 只要它的Session处于open状态,Hibernate.initialize(cat) 将会为cat强制对代理实例化。 同样,Hibernate.initialize( cat.getKittens() ) 对kittens的集合具有同样的
      

  3.   

    Hibernate.initialize(note.getTags())就这样写啊.你不会是在关闭了SESSION写这句吧.