看了hibernate的帮助文档,要实现many-to-one的lazy加载,什么都不设置应该就可以了.
(lazy default 是proxy)
我现在的配置:
<class 
    name="MzUserTerritoryMst" 
    table="MZ_USER_TERRITORY_MST"
    lazy="true"
>
 <property>
    ...
 </property>
   <!-- union-directional many-to-one association to MzTerritoryMst -->
    <many-to-one 
        name="mzTerritory"
        class="MzTerritoryMst" 
        insert="false" 
        update="false" 
        not-found="ignore" 
lazy="proxy"
        foreign-key="none"
    >
        <column name="SYS_OWNER_CD"/>
     <column name="TERRITORY_CD"/>
    </many-to-one>
</class>
<class 
    name="MzTerritoryMst" 
    table="MZ_TERRITORY_MST"
    lazy="true"
>
 <property>
    ...
 </property>
</class>
not-found="ignore"这么设置之后..lazy就无效了..如果not-found不设置..lazy就有生效..

解决方案 »

  1.   

    Hibernate的many-to-one的元素的一个属性:not-found
    用来指定引用的外键不存在时将如何处理:
                                           exception(默认)抛出异常
                                           ignore 忽略
      

  2.   

    hibernate中默认就是lazy的,并不需要设置。
      

  3.   

    lazy默认为true,即延迟加载,查询与更新必须在一个Session中,Session不能关闭。
    lazy为false,即立即加载,查询同时查询出与其相关的数据。
      

  4.   

    这是一个延迟加载的问题  默认是lazy是true,也就是懒惰的,查只查属性本身,你要查的是关联属性,把lazy改为false是不可取的,因为这样不安全,每次查的时候都会把属性以及属性相关联的都给查出来。
    解决方法:
    1,查询的list,在循环一次,把原先查的值给覆盖掉,用关联属性去填充。添加到list中,保存至作用域,在调用。
    2.用Criteria查询,具体语法自己查相关资料
    一般1方法可以解决......
    不足之处,还望高手补充........