延迟加载自引用表

时间:2014-04-29 18:39:38

标签: nhibernate

我正在尝试使用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>

1 个答案:

答案 0 :(得分:1)

one-to-one映射将始终与NHibernate一起加载。不确定这是一个功能还是错误,但这就是它的工作原理。如果您需要延迟加载,请使用many-to-oneone-to-many。不是我所知道的最佳答案,但如果你可以添加新栏目......