一剑飞虹

道可道非常道,名可名非常名
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用NHibernate之一

Posted on 2008-04-23 20:57  greatqn  阅读(193)  评论(0编辑  收藏  举报
 

使用NHibernate进行项目应用一周。单表的增,删,改没有问题。

一对一在NHibernate中有两种设置,一种A表,B表使用相同的主键。第二种A表,B表中使用Aid做外键。现使用第二种的设置:

A.hbm.xml:

<one-to-one name="TheB" class="classB" property-ref="TheA" outer-join="false" cascade="delete" />

B.hbm.xml:

<many-to-one name="TheA" column="Aid" class="classA" unique="true" />

在读A时,TheB会随后读出。试了网上的几种延时加载的配置,没有实现。

B时,TheA会延时加载。在使用TheA.id时,不会引发加载。

一对多:

A

    <bag name="TheBs" table="B" lazy="true" inverse="true" cascade="all">

      <key column="AId"/>

      <one-to-many class="ClassB"/>

    </bag>

B

    <many-to-one name="TheA" column="AId" class="ClassA" />

TheBs,TheA都可以延时加载。