原文地址:http://blog.csdn.net/qiaqia609/article/details/9456489html
hibernate.cfg.xmljava
XXX.hbm.xmlmysql
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
-
- <!--
- <hibernate-mapping>通常不去配置,採用默認便可。
- default-cascade="none":默認的級聯風格,表與表聯動。
- default-lazy="true":默認延遲加載
- -->
- <hibernate-mapping>
-
- <!--
- <class>:使用class元素定義一個持久化類。
- name="cn.javass.user.vo.UserModel":持久化類的java全限定名;
- table="tbl_user":對應數據庫表名;
- mutable="true":默認爲true,設置爲false時則不能夠被應用程序更新或刪除;
- dynamic-insert="false":默認爲false,動態修改那些有改變過的字段,而不用修改全部字段;
- dynamic-update="false":默認爲false,動態插入非空值字段;
- select-before-update="false":默認爲false,在修改以前先作一次查詢,與用戶的值進行對比,有變化都會真正更新;
- optimistic-lock="version":默認爲version(檢查version/timestamp字段),取值:all(檢查所有字段)、dirty(只檢查修改過的字段)、
- none(不使用樂觀鎖定),此參數主要用來處理併發,每條值都有固定且惟一的版本,版本爲最新時才能執行操做;
- -->
- <class name="cn.javass.user.vo.UserModel" table="tbl_user" dynamic-insert="true" dynamic-update="true" optimistic-lock="version">
-
- <!--
- <id>:定義了該屬性到數據庫表主鍵字段的映射。
- name="userId":標識屬性的名字;
- column="userId":表主鍵字段的名字,若是不填寫與name同樣;
- -->
- <id name="userId">
- <!-- <generator>:指定主鍵由什麼生成,推薦使用uuid(隨機生成惟一通用的表示符,實體類的ID必須是String),
- native(讓數據庫自動選擇用什麼生成(根據底層數據庫的能力選擇identity,sequence或hilo中的一種)),
- assigned(指用戶手工填入,默認)。 -->
- <generator class="uuid"/>
- </id>
-
- <!--
- <version/>:使用版本控制來處理併發,要開啓optimistic-lock="version"和dynamic-update="true"。
- name="version":持久化類的屬性名,column="version":指定持有版本號的字段名;
- -->
- <version name="version" column="version"/>
-
- <!--
- <property>:爲類定義一個持久化的javaBean風格的屬性。
- name="name":標識屬性的名字,以小寫字母開頭;
- column="name":表主鍵字段的名字,若是不填寫與name同樣;
- update="true"/insert="true":默認爲true,表示能夠被更新或插入;
- -->
- <property name="name" column="name" />
- <property name="sex" column="sex"/>
- <property name="age" column="age"/>
-
- <!--
- 組件映射:把多個屬性打包在一塊兒當一個屬性使用,用來把類的粒度變小。
- <component name="屬性,這裏指對象">
- <property name="name1"></property>
- <property name="name2"></property>
- </component>
- -->
-
- <!--
- <join>:一個對象映射多個表,該元素必須放在全部<property>以後。
- <join table="tbl_test:子表名">
- <key column="uuid:子表主鍵"></key>
- <property name="name1:對象屬性" column="name:子表字段"></property>
- </join>
- -->
-
- </class>
-
- </hibernate-mapping>