hibernate 多对一查询 当我配置文件lazy=false时,如果我查的是单个实体,出来的语句是表连接式的查询,但如果我是query.list()查集合的时候,查询语句是2条的,请问这是为什么,怎么可以在查询集合的时候也是表连接查询,而非生成2条查询语句

解决方案 »

  1.   

    你问题 具体阐述的我不大明白,查询单个的时候 由于对象之间你做了关联,hibernate 又是基于对象型数据,所以你查询单个的时候他是关联当前对象引用其他对象的表(即表连接)如果用你的query.list 的话,hql语句应该是你自己写的,这个就看你自己写的喽。举个例子,
    getSession().createQuery("from XXX ,XXX1,XXX2....WHERE.....").setParameter(0, true).setParameter(1, articleCategory.getPath() + "%").list();
      

  2.   

    你的意思是不能通过lazy=false配置 
    需要用from t1,t2 where t1...=t2... 
      

  3.   

      因为 是hql .. 它通过配置文件处理了..都是一个一个的语句拆分的..而不是像jdbc一样的打印出关联的sql...