一剑飞虹

道可道非常道,名可名非常名
posts - 57, comments - 44, trackbacks - 0, articles - 11
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

2008年4月23日

 

使用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都可以延时加载。

posted @ 2008-04-23 20:57 greatqn 阅读(30) | 评论 (0)编辑