标签:
实体类映射中,必须配置一个关键字,对应着数据表的关键字,大多数的实体类也都有一个属性表示类的唯一性,在实体类配置文件(.hbm.xml)中,<id>元素的就是这个作用。
一个完整的ID配置: <id name="PropertyName" --实体类中属性名,如不设置则认为没有主键 type="typename"--属性的类型(是NHibernate中对应的类型-见第二部分) column="column_name" --数据表中的字段名(默认和name一致) unsaved-value="any|none|null|id_value" access="field|property|nosetter|ClassName(5)"> <generator class="generatorClass"/> </id>
释:
其中unsaved 表示该实体类对象,是不是新增的(一般不需要配置),推荐看一下这里:
http://blog.csdn.net/chunkyo/article/details/660050
关于 <generator> 配置节:
这个节点配置可以放在 <id> 内部,配置成子节点,用来为实体类生成唯一标示。
可以通过<param> 节点配置如何初始化生成器,其中<param>应该是<generator>的子节点,如下:
<id name="Id" type="Int64" column="uid" unsaved-value="0"> <generator class="NHibernate.Id.TableHiLoGenerator"> <param name="table">uid_table</param> <param name="column">next_hi_value_column</param> </generator> </id>
如果不需要<param>节点配置generator,那么也可以不用<generator>节点, 直接在<id>的属性中添加 generator属性就可以,如:
<id name="Id" type="Int64" column="uid" unsaved-value="0" generator="native" />
那么,generator=? 这?应该配置成什么,又有哪些自带的可配置呢?
标签:
原文地址:http://www.cnblogs.com/wangdy/p/5373681.html