本帖最后由 qq573616 于 2014-04-08 10:56:54 编辑

解决方案 »

  1.   

    你要是难受,就别打出这个hql语句 ,眼不见心不烦。
    我觉的你这个23俩个语句是由于你设置了延迟加载,
    每次循环要用到的对象,要用hql语句获得,若果你设置立即加载 这两个语句就会没有了。
    这样根本不会影响效率的。
      

  2.   

    是这样的,立即记载的话,我把test1改成FetchType.EAGER,结果sql 语句如下图
    求指教,为什么还有第2句,如果我有一万条记录,那么第2条sql语句就会执行一万次,这很让人抓狂
      

  3.   

    若果test1立即加载了 ,但是他和test2有关联,而test2没有设置立即加载,还是要用语句去加载test2的。这个语句不会影响你的效率的,你可以看看延迟加载和立即加载的利弊。看你的需要选择不同的方式。
    这个打印的语句你可以设置成不打印,这个真的不重要。
      

  4.   


    是这样的,第二次,我设置了test1,test2都立即加载, 可以看出来第一条sql语句把test1,test2 左外连接了,所有的属性也都查出来了,为什么第二条生气了还是要出现,根据test2的id去查test1呢,这不是多此一举吗