【发布时间】:2018-04-06 21:30:39
【问题描述】:
给定两个表:
具有列 ID (PK) 和名称的表 A
具有列 ID (PK) 和名称 (of A) 的表 B
我想将 B 作为 A 的属性,通过 Name 关联,该 Name 不是主键。
如果可能的话,我将如何在 A.hbm.xml 中映射(多对一)?
谢谢。
【问题讨论】:
标签: nhibernate nhibernate-mapping
给定两个表:
具有列 ID (PK) 和名称的表 A
具有列 ID (PK) 和名称 (of A) 的表 B
我想将 B 作为 A 的属性,通过 Name 关联,该 Name 不是主键。
如果可能的话,我将如何在 A.hbm.xml 中映射(多对一)?
谢谢。
【问题讨论】:
标签: nhibernate nhibernate-mapping
我们可以使用神奇的property-ref设置:
在父端(A类),集合映射:
<bag name="Children" lazy="true" inverse="true"
batch-size="25" cascade="all-delete-orphan" >
<key column="Name" property-ref="Name" />
<one-to-many class="B"/>
</bag>
和child(B类)可以引用parent类似的方式:
<many-to-one not-null="true" name="Parent" class="A"
property-ref="Name" column="Name" />
另请查看:https://stackoverflow.com/a/31300425
文档链接:5.1.11. many-to-one
...
property-ref:(可选)关联的属性名称 加入此外键的类。如果未指定,则 使用关联类的主键。
【讨论】: