NHibernata的XML映射定义说明

以下列映射文件说明:

 1 <?xml version="1.0"?>
 2 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Eg"
 3     namespace="Eg">
 4 
 5         <class name="Cat" table="CATS" discriminator-value="C">
 6                 <id name="Id" column="uid" type="Int64">
 7                         <generator class="hilo"/>
 8                 </id>
 9                 <discriminator column="subclass" type="Char"/>
10                 <property name="BirthDate" type="Date"/>
11                 <property name="Color" not-null="true"/>
12                 <property name="Sex" not-null="true" update="false"/>
13                 <property name="Weight"/>
14                 <many-to-one name="Mate" column="mate_id"/>
15                 <set name="Kittens">
16                         <key column="mother_id"/>
17                         <one-to-many class="Cat"/>
18                 </set>
19                 <subclass name="DomesticCat" discriminator-value="D">
20                         <property name="Name" type="String"/>
21                 </subclass>
22         </class>
23 
24         <class name="Dog">
25                 <!-- mapping for Dog could go here -->
26         </class>
27 
28 </hibernate-mapping>
  • hirbernata-mapping:该元素包括以下可选元素:
<hibernate-mapping                                   
(1)
         schema="schemaName"                          (2)
         default-cascade="none|save-update"           (3)
         auto-import="true|false"                     (4)
         assembly="Eg"                                (5)
         namespace="Eg"
 />

  1.1:schema:数据库表空间名称。假如指定了这个属性,表名会加上指定的schema的名字扩展为全限定名;若没有指定,表名就不会使用全限定名称。

  1.2:default-cascade (可选 - 默认为 none): 默认的级联风格。 

  1.3:auto-import,指定在使用查询语句时是否可以使用非全限定名称。

  1.4:assembly或namespace,可选属性,指定映射文件中的类所在的程序集名称和其所在的命令空间名,用来生成类的非全限定名

  说明:如果没有设置assembly和namespace标签,就不得不使用类的非全限定名称(assembly.namesapce.类名,assembly)。假如2个持久化类的非全限定名称一样,应该设置auto-import="false"

posted @ 2021-06-03 09:53  一生安然  阅读(67)  评论(0编辑  收藏  举报