我有这样一个房子类,里面有个用户类,
因为某种原因,用户类我不想即时加载,
然后我通过一个查询所有房子的方法得到一个list集合,
但现在集合里的users属性我又需要,
请问下我要怎么样才能使集合里的每一个对象的users属性都加载(前提是不把配置文件改为即时加载!)
public class House implements java.io.Serializable {
private Integer id;
private Users users;
}
 <class name="com.entity.House" table="HOUSE" schema="Y2">
        <id name="id" type="java.lang.Integer">
            <column name="ID" precision="22" scale="0" />
            <generator class="sequence" >
             <param name="sequence">seq_house</param>
            </generator>
        </id>
        <many-to-one name="users" class="com.entity.Users" fetch="select">
            <column name="USER_ID" precision="22" scale="0" />
        </many-to-one>
</class>

解决方案 »

  1.   

    for (House house : list) {
        Hibernate.initialize(house.getUsers());
    }
    难道只能这样 循环加载?? 这样不是很浪费性能??
      

  2.   

    这个可以,显式加载
    Hibernate.initialize 强制加载对象
      

  3.   

    for (House house : list) {
      Hibernate.initialize(house.getUsers());
    }
    这个集合有点大 这样循环 每循环一次发送一条SQL语句 不是太浪费性能了吗?
    有没有好点的方法 把集合中的所有 对象的 没加载的属性users 加载