我知道设置lazy='true'可以实现,但是lazy='true'实质上hibernate运行时还是生成了用来产生b中a和c的sql语句。这样其实效率并没有提高。

解决方案 »

  1.   

    lazy='true',sql虽然生成了,但是并没有执行吧
      

  2.   

    呵呵,把c设置成lazy="true"是有效的,如果你跟踪打出来了,那说明肯定是你没映射对。或者是你本来已经lazy="true"了,但是你在引用的时候同时引用了要进行lazy="true"的部分,导致那部分被加载了。也就是说可能你提前引用了c,导致c被加载。
    还是先检查一下你的代码吧。
    btw:太多的many-to-many映射hibernate不推荐采用,建议还是拆分之后进行比较好些,否则效率实在是个问题。