项目要用到nhibernate做数据访问策略,由于对这个不是很懂,打算边翻译边实践,快速的掌握应用先,有时间再研究它的内部机制,由于是开源,所以相关文章和代码都可以作为研究的依据,这里翻译的就是它的帮助文档。
它的应用主要放在配置上,举例解说:
<?xml version="1.0" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernate.Eg.Edge" table="edge">
<!--<jcs-cache usage="read-write"/>-->
<id column="edge_id" name="Key">
<generator class="hilo" />
</id>
<property name="Name" unique="true" not-null="true" length="50" />
<many-to-one name="Source" not-null="true" />
<many-to-one name="Sink" not-null="true" />
<property name="Length" column="edge_length" />
<property name="Capacity" column="edge_cpcty" />
<property name="CreationDate" type="DateTime" />
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="NHibernate.Eg.Edge" table="edge">
<!--<jcs-cache usage="read-write"/>-->
<id column="edge_id" name="Key">
<generator class="hilo" />
</id>
<property name="Name" unique="true" not-null="true" length="50" />
<many-to-one name="Source" not-null="true" />
<many-to-one name="Sink" not-null="true" />
<property name="Length" column="edge_length" />
<property name="Capacity" column="edge_cpcty" />
<property name="CreationDate" type="DateTime" />
</class>
</hibernate-mapping>
这是*.hbm.xml文件,主要是将对象类映射到数据库字段。
首先解释hibernate-mapping 元素,
<hibernate-mapping
schema="schemaName"
default-cascade="none|save-update"
auto-import="true|false"
default-access="property|field|nosetter|ClassName"
assembly="assembly.name"
namespace="namespace.name"
>
schema="schemaName"
default-cascade="none|save-update"
auto-import="true|false"
default-access="property|field|nosetter|ClassName"
assembly="assembly.name"
namespace="namespace.name"
>
这个元素有4个可选属性,