在一方查询时同时加载了多方的数据
如查询类型时同时加载该类型的产品

解决方案 »

  1.   

    如果他们之间有关联关系,只要设置lazy=false 就可以了  看你怎么配置了
      

  2.   

    谢了,我就是不要用延迟加载,要hql
      

  3.   

    在hibernate的实体映射文件里面一对多,多对一的关系。
    1(com.train.vo.UserVO): <set name="roleSet" inverse="true" cascade="all">
    <key column="uid"/>
    <one-to-many class="com.train.vo.RoleVO" />
    </set>n(com.train.vo.RoleVO):
    <many-to-one name="uid" column="uid" not-null="true"/>在查询用户的时候,默认就把所有的角色放到set集合里面了
      

  4.   

    不是每次都要查出来的啊。所以不要配置那里
    我要用Hql语句来查询。
      

  5.   


    做一对多的关联。并且家取策略使用join即可
      

  6.   

    我也是这样做的select t from Type as t inner join fetch t.Product 假设类型t有3个Product
    查询出来就有3条记录并且是一样的
    ??????
      

  7.   

    我晕,我说的是配置文件的设定级联关系,
    直接from Type 即可,
    不存在内连接
      

  8.   

    参考:<hibernate-mapping>

        <class name="vo.SshMain" table="ssh_main" >
          <!--  <cache usage="read-write"/> --> 
            <id name="mainId" type="java.lang.String" >
                <column name="main_id" length="20"/>
                <!-- <generator class="native" />  -->
                <generator class="sequence"> 
    <param name="sequence">S_USER</param> 
    </generator>
            </id>
         
            <property name="mainName" type="java.lang.String">
                <column name="main_name" length="20" />
            </property>
            
           
             <set name="subs"  inverse="true" fetch="join"   cascade="all-delete-orphan"  >
             <key column="main_id" not-null="true" >
             </key>
             <one-to-many class="vo.SshSub" />
             </set>
        </class>
       
    </hibernate-mapping>hql
    :
    from SshMain,即可在subs中获取你的products信息。
      

  9.   

    那个方法我知道啊。
    我不是每次查询都要加载啊
    我想自己控制,想要的时候就级联查(hql)
      

  10.   

    做一对多的关联。并且家取策略使用join即可
    不用load()用get()查询!
      

  11.   

    那是不行的,用AJAX才能达到你要的效果。需要级联查询的时候肯定是你在页面进行操作的时候,一般这个时候session已经关闭了 ,只有重新查了。