仅在必要时加载对象

时间:2012-04-11 10:30:21

标签: c# nhibernate hibernate-mapping

我有一个Slab对象的映射,它具有对象的映射引用和SlabPDO SlabInstructions。我想做选择,总是携带对象SlabPDO并仅在必要时加载SlabInstructions。有没有办法做到这一点?下面是一个映射示例:

<id name="Id" column="Id_Slab" type="Int64">
  <generator class="Geraes.GLib.GDomainBasis.CustomTableHiLoGenerator, GLib.GDomainBasis" />
</id>

<property name="Mill" column="Mill" type="String" length="2" not-null="true" />

<property name="SlabId" column="Slab_Id" type="String" length="20" not-null="true" />

<property name="PieceId" column="Piece_Id" type="String" length="20" not-null="true" />

<one-to-one name="SlabPDO" class="SlabPDO" cascade="all" fetch="join"/>

<set name="SlabInstructions" generic="true" inverse="true" lazy="false" cascade="all" fetch="join">
  <key column="Id_Slab" />
  <one-to-many class="SlabInstruction"/>
</set>

最诚挚的问候!

1 个答案:

答案 0 :(得分:0)

关于这两个映射属性lazy="true" fetch="select",请参阅文档http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-fetching

这是你的解决方案

<set name="SlabInstructions" generic="true" inverse="true" lazy="true" cascade="all"
  fetch="select">
  <key column="Id_Slab" />
  <one-to-many class="SlabInstruction"/>
</set>