有没有办法禁止关联查询????例如我一个user表关联了三个表
我要做user的name修改操作,在userService.load(userid)的时候生成这样一条语句select
。。省略
from
        topic_user topicuser0_ 
    left outer join
        topic_period topicperio1_ 
            on topicuser0_.period=topicperio1_.id 
    left outer join
        topic_class topicclass2_ 
            on topicperio1_.classid=topicclass2_.id 
    left outer join
        topic_content topicconte3_ 
            on topicperio1_.id=topicconte3_.periodid 
    where
        topicuser0_.id=?然后我保存user的name值,这样就带来一个性能问题,保存一个name怎么连topic_content,topic_period,topic_class都查出来了!请问如何优化这种情况!谢谢!

解决方案 »

  1.   

    配置了关联之后,查询的时候,会自动查询你所查对象表关联的对象表。所以,用hibernate要提升运行速度,一般会用缓存,用了缓存之后,只要加载一次之后,以后查询,虽然也有多余的sql语句,但是直接从缓存中得到数据,所以反而比较快。
      

  2.   

    问楼上,说的用缓存是指什么缓存?hibernate的二级缓存?还是memcached?
    另外,还有高手能解答吗?
      

  3.   


    一楼的已经解答了  应该是没延迟加载 {set name="children" lazy="true" inverse="true"}
    这种 试试 ,
    另外,你要把配置映射文件这段贴出来 那才是问题根源