hibernate 2.x这样配置,
<class name="User"  table="T_User" lazy="true">
hiberate 3.x 不需要,class默认是lazy load的;

解决方案 »

  1.   

    lazy我已经设置 
    我想问的主要是第三点??意思可能还说的不够明白。
    既:订单表的更新员与用户表是多对一的关系,我只想取更新员的值(既int),而不想取出相关用户表中的其他信息;因为直接调用POJO中的getUpdatedBy().getId()方法来取int值时,已经同时把用户表中的其它信息也取出了??
      

  2.   


    hibernate3中使用 formula,例如:
      <property name="更新员id" formula="( select nvl(max ( t.更新员id),0 ) from T_User t where t.userid = id )" type="int" />
     
      

  3.   

    多谢楼上的
    你说的formula看看先
      

  4.   

    我的测试代码怎么可以?我用的是2.1.8    public Product getProduct(Serializable id) {
            Product p= this.productDao.getProduct(id);
            System.out.println("sid=" + p.getSalesman().getId());
            System.out.println("sName=" + p.getSalesman().getUsername());
            return p;
        }控制台显示如下:
    Hibernate: select product0_.id as id0_, product0_.name as name0_, product0_.Salesman_ID as Salesman3_0_ from Product product0_ where product0_.id=?
    sid=test1
    Hibernate: select user0_.id as id0_, user0_.username as username0_ from T_User user0_ where user0_.id=?
    sName=测试人1
      

  5.   

    哦,可能我没说清楚。
    程序运行是没错,但我想要的仅仅是Id,如p.getSalesman().getId();
    但是在我看来,调用p.getSalesman()时,就已经把用户的所有信息都取出了(不知道是不是这样??);
    但是我的程序大部分都只是需要ID而已,不需要查询关联的表
    (我想保留多对一映射,又可单单取ID而不用查询关联表)
      

  6.   

    晕,看仔细点成不,你自己看第一条sql,hibernate仅对Product表进行了查询(如果lazy=false的话,会自动关联User表进行查询的),p.getSalesman().getId())hibernate 没有做任何事情,在p.getSalesman().getUsername())后才去查user表,于是执行了第2条sql
      

  7.   

    这样的啊..怪不很多人都不理睬我,原来问了'白痴的'问题...呵呵
    Hibernate果真厉害
    Thank you