hibernate 多对一,多对多映射。检索的时候用getHibernateTemplate().get(class,id);
查询,debug返回的结果,不能马上看到映射的数据,也就是成员employersDTO中没有数据。但是遍历employersDTO中数据时,sql文才被执行,打印在控制台。怎么能查询后,马上看到全部数据
public class user
{
//更新时间
private String update_time;

//版本
private int version;

         //人员
private EmployersDTO employersDTO ;
}

解决方案 »

  1.   

    你的.xml配置的是延迟加载了,  把lazy改为false  (不配lazy ,默认就是延迟加载 即 lazy="true")
      

  2.   

    lazy延时加载
    当你new一个对象时,只持有对象有代理,并不是真正的对象,只有当执行的时候,该对象才会被调用
    lazy设为false就行了
      

  3.   

              这是Hibernate延迟加载功能,你多对一那里的配置加上lazy=‘false’,就可以了;这是Hibernate出于性能的考虑,加上去的功能,假如你查User对象的时候就把EmployersDTO 的信息查询出来,一直到操作结束都没访问过EmployersDTO ,那查询EmployersDTO的操作就浪费了,所以Hibernate就加入了这个延迟加载功能;虽然你不可以访问EmployersDTO的属性,但是你可以访问EmployersDTO的ID(也就是外键约束那个值),这个ID,第一次查询User的时候就会查出来
          
             不过当你的session没有关闭的时候,如果你访问了EmployersDTO的属性,Hibernate就会查询EmployersDTO,这时就可以访问EmployersDTO的属性了。