User.hbm.xml:<set name="students" inverse="false" lazy="false">            <key>                <column name="userId" length="20" />            </key>            <one-to-many class="com.dianyuanlab.studentmanager.bean.StudentBean" />        <t>UserBean:private Set students = new HashSet(0);在UserBean 实体中,取出的 Students 为空,求解,求助,~~

解决方案 »

  1.   

    1、把 inverse="false" 去掉。2、你确定关联上数据了吗?
      

  2.   

    楼主获取 UserBean 对象的时候是如何获取的?
    是通过get或者load方法获取的吗,如果是这样的情况,当<set name="students" inverse="false" lazy="false">没加fetch=“join”的时候,获取的Students是为空的,因为默认fetch的情况是不会去加载关联对象的,可以从执行的sql语句就可以看出来了,如果要获取到Students,有两种方式,一是在set标签上加上fetch=“join”,二是用Hibernate.initialize(Object proxy)方法,强制加载,强烈推荐用第二种方式
    第二种方法伪代码如下
    UserBean  user = session.get(UserBean.class,id);
    Hibernate.initialize(user. students);