Nhibernate 延迟加载自引用表

Nhibernate 延迟加载自引用表,nhibernate,Nhibernate,我试图用NHibernate 3.2.0.4000映射一个自参考表。然而,每当我得到一个DomainObject的实例时,它都会急切地加载后续版本。我不想在我的表中增加一列,尽管这是一种选择 我可以让NHiberante在不维护双方关系的情况下不急于加载所有后续版本吗 <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping assembly="NHibernateHierarchyTest" namespace="N

我试图用NHibernate 3.2.0.4000映射一个自参考表。然而,每当我得到一个
DomainObject
的实例时,它都会急切地加载后续版本。我不想在我的表中增加一列,尽管这是一种选择

我可以让NHiberante在不维护双方关系的情况下不急于加载所有后续版本吗

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping assembly="NHibernateHierarchyTest" namespace="NHibernateHierarchyTest" xmlns="urn:nhibernate-mapping-2.2">
    <class name="DomainObject" table="DOMAIN_OBJECT" lazy="true" >
        <id name="DomainObjectId" column="DOMAIN_OBJECT_ID">
            <generator class="identity" />
        </id>
        <property name="Property">
            <column name="PROPERTY" />
        </property>
        <many-to-one name="PreviousVersion" class="DomainObject" >
            <column name="PREVIOUS_VERSION_DOMAIN_OBJECT_ID" />
        </many-to-one>
        <!--<many-to-one name="SubsequentVersion" class="DomainObject">
            <column name="SUBSEQUENT_VERSION_DOMAIN_OBJECT_ID" />
        </many-to-one>-->
        <one-to-one name="SubsequentVersion" class="DomainObject" property-ref="PreviousVersion" />
    </class>
</hibernate-mapping>


一对一映射将始终使用NHibernate提前加载。不确定这是一个特性还是一个bug,但这就是它的工作原理。如果需要延迟加载,请使用
多对一
一对多
。这不是我知道的最好的答案,但如果你能添加新的专栏

谢谢你的回复。我是DRY principal的粉丝,但是附加的专栏没有NHibernate急切地加载几十个对象那么糟糕,每个对象都有自己的一对一。装载量很大。这一定是最好的答案,因为这是唯一正确的答案,正如我所希望的那样。