一、orm元數據示例
<hibernate-mapping>
<class name=”cn.it.domain.Customer” table=”cst_customer”>
<id name=”cust_id” column=”cust_id”>
<generator class=”native”></generator>
</id>
<property name=”cust_name” column=”cust_name”></property>
<property name=”cust_source” column=”cust_source”></property>
<property name=”cust_industry” column=”cust_industry”></property>
<property name=”cust_level” column=”cust_level”></property>
<property name=”cust_linkman” column=”cust_linkman”></property>
<property name=”cust_phone” column=”cust_phone”></property>
<property name=”cust_mobile” column=”cust_mobile”></property>
</class>
</hibernate-mapping>
二、根元素
1. 配置的根元素
<hibernate-mapping> </hibernate-mapping>
用來填寫hibernate映射。
2. 配置根元素的屬性 package
package屬性:填寫一個包名。
在元素內部凡是需要完整類名的屬性,可以直接使用簡單類名。
<hibernate-mapping package=“cn.it.domain”> 填寫實體類所在的包
三、class元素
<class name=”Customer” table=”cst_customer”>
1. 作用:配置實體與表的對應關係
2. 屬性作用:
name屬性:完整類名
table屬性:數據庫表名
四、類內部映射
1. 主鍵映射(id元素)
<id name=”cust_id” column=”cust_id”>
generator:主鍵生成策略
<generatorclass=”native”></genernator>
</id>
A 作用:配置主鍵映射的屬性
B 屬性作用:
1. name屬性:填寫主鍵對應屬性名
2. column(可選)屬性:填寫表中的主鍵列名。默認值:列名會默認使用屬性名
3. type(可選)屬性:填寫該列(屬性)的類型。Hibernate會自動檢測實體的屬性類型。
每個類型有三種填法:Java類型 | hibernate類型 | SQL類型
4. not-null(可選)屬性:配置該屬性(列)是否不能爲空,默認值:false
5. length(可選)屬性:配置數據庫中列的長度。默認值:使用數據庫類型的最大長度
2. 普通屬性映射(property元素)
<property name=”cust_name” column=“cust_name”>
</property>
A 作用:除id之外的普通屬性映射
B 屬性作用:
1. name:填寫主鍵對應屬性名
2. column(可選):填寫表中的主鍵列名,列名默認使用屬性名。<property name=”cust_name”>
3. type(可選)屬性:填寫該列(屬性)的類型。Hibernate會自動檢測實體的屬性類型,也可以手動指定類型,
方法有三種:Java類型 | hibernate類型 | SQL類型 :
a Java類型:
<property name=”cust_name” column=“cust_name” type="java.lang.String">
</property>
b hibernate類型:
c SQL類型:
<propertyname=”cust_name” column=”cust_name”>
<column name="cust_name" sql-type="varchar"></column>
</property>
注意:開發中,不需要指定,使用系統默認方式!4. not-null(可選)屬性:配置該屬性(列)是否不能爲空,默認值:false
5. length(可選)屬性:配置數據庫中列的長度。默認值:使用數據庫類型的最大長度,
例如“cust_name”在數據庫中是varchar類型,最長爲255位。