国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【OA】——hibernate映射關系編寫技巧

2019-11-08 18:32:32
字體:
來源:轉載
供稿:網友

  引言

  之前對于hibernate中幾種關系映射的編寫甚是頭疼啊,在這個項目中學習了一個比較好用的技巧,小編在此總結和分享,從而可以更好的加深自己對這個幾種關系映射的印象。

   西面以這三個實體的關系為例進行總結:

               

  下面先看一下幾個實體的映射文件的內容:

  Department.hbm.xml

<?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 package="cn.itcast.oa.domain">	<class name="Department" table="itcast_department">		<id name="id">			<generator class="native" />		</id>		<PRoperty name="name" />		<property name="description" />		<!-- users屬性,本類與User類 的 一對多 的關系 -->		<set name="users">			<key column="departmentId"></key>			<one-to-many class="User" />		</set>		<!-- parent屬性,本類與Department(上級)的 多對一 的關系 -->		<many-to-one name="parent" class="Department" column="parentId"></many-to-one>				<!-- children屬性,本類與 Department(下級) 的 一對多的關系 -->		<set name="children" cascade="delete" order-by="id ASC">			<key column="parentId"></key>			<one-to-many class="Department" />		</set>	</class></hibernate-mapping>  User.hbm.xml

<?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 package="cn.itcast.oa.domain">	<class name="User" table="itcast_user">		<id name="id">			<generator class="native" />		</id>		<property name="loginName" />		<property name="passWord" />		<property name="name" />		<property name="gender" />		<property name="phoneNumber" />		<property name="email" />		<property name="description" />		<!-- department屬性,本類與Department類的 多對一 的關系 -->		<many-to-one name="department" class="Department" column="departmentId"></many-to-one>				<!-- roles屬性,本類與Role類的 多對多 的關系 -->		<set name="roles" table="itcast_user_role" lazy="false" >			<key column="userId"></key>			<many-to-many class="Role" column="roleId"></many-to-many>		</set>	</class></hibernate-mapping>

   

<?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 package="cn.itcast.oa.domain">	<class name="Role" table="itcast_role">		<id name="id">			<generator class="native" />		</id>		<property name="name" />		<property name="description" />		<!-- users屬性,本類與User類的 多對多的 關系 -->		<set name="users" table="itcast_user_role">			<key column="roleId"></key>			<many-to-many class="User" column="userId"></many-to-many>		</set>				<!-- privileges屬性,本類與Privilege類的 多對多的關系 -->		<set name="privileges" table="itcast_role_privilege" lazy="false">			<key column="roleId"></key>			<many-to-many class="Privilege" column="privilegeId"></many-to-many>		</set>	</class></hibernate-mapping>  先給出幾種關系編寫模型

	多對一:		<many-to-one name="" class="" column=""></many-to-one>	一對多(Set):		<set name="">			<key column=""></key>			<one-to-many class=""/>		</set>	多對多(Set):		<set name="" table="">			<key column=""></key>			<many-to-many class="" column=""></many-to-many>		</set>

  第一、寫注釋(有規則)以department中的uers屬性為例 

       <!-- users屬性,本類與User的一對多 -->           格式:?屬性,本類與?的?               ?1	屬性名               ?2	關聯的類型               ?3	關系這樣大家在看看上面映射文件中幾種關系的說明都是這樣的格式

  第二、將對應的空的類型模板復制到對應的注釋下面

  第三步、填空

  將注釋(注釋要按照要求來寫)中 

    xxx屬性中的xxx當做name的值。

    本類與yyy類中的yyy當做class的值

   下面是填充column的規則,分為兩組 一對多與多對一是一組,多對多是一組。

   多對一與一對多,這種不需要中間表,將“一”的一方的實體的名稱首字母小寫然后后面加上Id,將這個值分別作為這一組的column的值。比如下面的例子

  

   

  下面在介紹多對多的編寫規則,因為這種關系需要中間表,也就是模板中的table的值,這個值我選用的規則是:項目名稱_實體1的name_實體2的name ,比如user與role的關系中間表名稱為:itcast_user_role。對于name和calss的填寫規則還是按照上面的規則來填寫。

  關于column的填寫規則是將本實體的名稱+Id,放在自己的映射文件的<key column=""></key>這個column的位置上,并且復制到對方的<many-to-many class="" column=""></many-to-many>這個位置一份。這兩個值必須一樣。舉個例子

  

   

  小結

  上面就是小編對于編寫hibernate映射文件中幾種關系的小技巧,可能在語言描述上面有一些不清楚,但是大家可以結合這其中的例子來進行描述。歡迎大家有什么更好的編寫技巧來共勉!     

     


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西充县| 大兴区| 裕民县| 景泰县| 五寨县| 石家庄市| 佛山市| 历史| 眉山市| 乳源| 太白县| 集安市| 定远县| 怀安县| 洛川县| 马边| 迁安市| 炉霍县| 马龙县| 井陉县| 鹤山市| 大宁县| 翼城县| 海南省| 五大连池市| 洪泽县| 英山县| 五常市| 六枝特区| 特克斯县| 陆丰市| 武山县| 拉孜县| 子长县| 梓潼县| 镇江市| 沙洋县| 宁陵县| 塔城市| 江山市| 万荣县|