青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

hibernate多表關聯總結

1>:one-to-one(一對一關聯)主鍵關聯:

一對一關聯一般可分為主鍵關聯和外鍵關聯

主鍵關聯的意思是說關聯的兩個實體共享一個主鍵值,但這個主鍵可以由兩個表產生.

現在的問題是:

*如何讓另一個表引用已經生成的主鍵值

解決辦法:

*Hibernate映射文件中使用主鍵的foreign生成機制

eg:學生表:

<hibernate-mapping>

 <class table="user" catalog="study">

 <id type="java.lang.Integer">

 <column />

 <generator />

 </id>

 <property type="java.lang.String">

 <column length="20" />

</property>

<one-to-one cascade="all"></one-to-one>

</class>

</hibernate-mapping>

添加:<one-to-one

 

fetch="join"

cascade="all" />

<class>元素的lazy屬性為true,表示延遲加載,如果lazy設為false,則表示立即加載.以下對這二點進行說明.

立即加載:表示在從數據庫中取得數據組裝好一個對象后,會立即再從數據庫取得數據組裝此對象所關聯的對象

延遲加載:表示在從數據庫中取得數據組裝好一個對象后,不會立即從數據庫中取得數據組裝此對象所關聯的對象,

而是等到需要時,才會從數據庫取得數據組裝此關聯對象.

<one-to-one>元素的fetch屬性可選為selectjoin

join:連接抓取,Hibernate通過在Select語句中使用outer join(外連接)來獲得對象的關聯實例或者關聯集合.

select:查詢抓取,Hibernate需要另外發送一條select語句抓取當前對象的關聯實體或集合.

******所以我們一般用連接抓取<join>

證件表:

<hibernate-mapping>

<class table="card" lazy="true" catalog="study">

<id type="java.lang.Integer">

<column />

<generator >

<param >user</param>

</generator>

</id>

<!-- id使用外鍵(foreign)生成機制,引用代號為user的對象

的主鍵作為card表的主鍵和外鍵。同時user在下面的

<one-to-one>中進行了定義 -->

<property type="java.lang.Integer">

<column />

</property>

<one-to-one constrained="true"></one-to-one>

<!-- constrained="true"表示card引用了student的主鍵作為外鍵。 -->

</class>

</hibernate-mapping>

一對一映射必須加載的元素有:

name

class

constrained(主鍵關聯)

fetch(關聯的一方才有:意思是說需要通過這一方查詢另一方數據的一方.比如學生表查詢證件中的數據,學生就是關聯的一方)

cascade(關聯的一方才有:意思是說需要通過這一方保存或者更新數據對另一方也產生影響(另一方也保存或者更新了,比如保存學生信息,那么與學生相關聯的證件信息也保存了))

 

2><one-to-one>外鍵關聯:

開發中可以參照<one-to-one>主鍵關聯和<many-to-one>

這里,學生表保存不變,只改變證件表:

<hibernate-mapping>

<class table="card" lazy="true">

<id type="java.lang.Integer">

<column />

<generator /><!-- 不再是foreign,因為它的主鍵不是學生表的主鍵,它的主鍵是自動產生的,它的外鍵才是學生表的主鍵 -->

</id>

<property type="java.lang.String">

<column length="20" />

</property>

<many-to-one column="userid" unique="true"/>

<!-- 惟一的多對一,如果被限制為唯一,實際上變成一對一關系了 -->

<!-- unique設為true表示使用DDL為外鍵字段生成一個惟一約束。

以外鍵關聯對象的一對一關系,其本質上已經變成了一對多的雙向關聯,

應直接按照一對多和多對一的要求編寫它們的映射文件。當unique

true時實際上變成了一對一的關系。

***這里需要強調一點的是<many-to-one>元素必須有column這一項,它表示這個這個表的外鍵是什么.注意,這里是表的外鍵,不是類的外鍵-->

</class>

</hibernate-mapping>

 

3>:<one-to-many>單身關聯

一對多關聯分為單向一對多關聯和雙向一雙多關聯

單向的一對多關聯只需要在一方進行映射配置

單身一對多關聯:

<hibernate-mapping>

<class table="customers" catalog="study">

<id type="java.lang.Long">

<column />

<generator />

</id>

<property type="java.lang.String">

<column length="20" />

</property>

<set table="orders" cascade="save-update" inverse="true">

<key column="customers_ID"></key>

<one-to-many />

</set>

</class>

</hibernate-mapping>

這里需要強調的是<set>元素的屬性代表的意義:

name

table

lazy:當為true時為延遲加載,false時為立即加載

inverse:用于表示雙向關聯中的被動一端,inverse的值為false的一方負責維護關聯關系

cascade

sort:排序關系,unsorted(不排序),natural(自然排序),comparatorClass(由某個實現了java.util.comparator接口的類型  指定排序算法。);

******<key>子元素的column屬性指定關聯表(orders)的外鍵(customers_ID)

4>:<one-to-many>雙向關聯:

如果要設置一對多雙向關聯關系.那么還需要在""的映射文件中使用<many-to-one>

<many-to-one

 

column="customers_ID"

cascade="none"

outer-join="auto"

insert="false" insertupdate設定是否對column屬性指定的關聯字段進行insertupdate操作

update="false">

</many-to-one>

 

 

4>多對多關聯:

多對多關聯時要建一個連接表查詢

學生的映射文件

<hibernate-mapping>

<class table="students" catalog="study">

<id type="java.lang.Long">

<column />

<generator />

</id>

<property type="java.lang.String">

<column length="20" />

</property>

<set table="student_teacher_table" cascade="save-update" inverse="false">

<key column="stuID"></key>

<many-to-many column="teaID"></many-to-many>

</set>

***<key>元素的理解:

它的控制主要是通過stuID(外鍵)來完成,就是我們從student_teacher_table表中我們只要

select * from student_teacher_table where stuID='該學生的ID',這樣我們就可以得到它的教師的ID

***<many-to-many>的理解:

我們從student_teacher_table表中根據stuID拿到了與該stuID關聯的teaID,

然后select * from teacher where teaID='前一步拿到的teaID'

</class>

</hibernate-mapping>

 

教師的映射文件

<hibernate-mapping>

<class table="teachers" catalog="study">

<id type="java.lang.Long">

<column />

<generator />

</id>

<property type="java.lang.String">

<column length="20" />

</property>

<set table="student_teacher_table" inverse="true">

<key column="teaID"></key>

<many-to-many column="stuID"></many-to-many>

</set>

</class>

</hibernate-mapping>

 

posted on 2009-08-05 13:24 肥仔 閱讀(1285) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美韩日一区| 国产日韩精品在线播放| 亚洲精品无人区| 亚洲国产毛片完整版| 久久午夜电影| 欧美国产第二页| 亚洲区免费影片| 99re6热只有精品免费观看| 99re66热这里只有精品3直播| 亚洲黄色精品| 一区二区三区波多野结衣在线观看| 一本大道av伊人久久综合| 国产精品99久久久久久久女警| 亚洲一区在线播放| 久久久久在线| 欧美日韩精品免费| 国产美女一区二区| 在线不卡亚洲| 亚洲一区二区三区色| 久久精品30| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲靠逼com| 欧美一级午夜免费电影| 美女视频黄免费的久久| 国产精品欧美久久| 亚洲国产高清在线| 午夜一区二区三视频在线观看| 猫咪成人在线观看| 亚洲裸体视频| 久久精品中文| 国产精品亚洲а∨天堂免在线| 在线观看成人av| 午夜精品久久久久久久| 毛片av中文字幕一区二区| 亚洲精品中文字幕女同| 欧美一级一区| 国产精品99免费看| 亚洲精品欧洲精品| 久久只有精品| 午夜视频精品| 国产精品久久久免费| 亚洲人成7777| 免费欧美日韩| 欧美一区观看| 国产精品视频网站| 亚洲午夜激情在线| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲人成网在线播放| 午夜在线一区二区| 夜夜嗨一区二区| 欧美精品一区二区三区在线看午夜 | 久久一二三四| 亚洲欧美在线一区二区| 欧美天天综合网| 亚洲精品国久久99热| 免费欧美视频| 久久蜜臀精品av| 韩国成人福利片在线播放| 午夜精品久久久久久久99热浪潮 | 亚洲高清毛片| 欧美激情1区2区3区| 亚洲三级网站| 亚洲看片一区| 国产精品久久久久久久久久免费看| 一本久道久久综合狠狠爱| 亚洲欧洲日产国产网站| 欧美激情中文字幕乱码免费| 亚洲精品日日夜夜| 亚洲精品国产精品乱码不99 | 欧美一区二区三区日韩| 中文欧美日韩| 国产日韩欧美综合一区| 久久久久久久久蜜桃| 欧美一区二区三区免费视频| 黑丝一区二区三区| 欧美 亚欧 日韩视频在线| 狂野欧美一区| 亚洲综合首页| 欧美人与性动交cc0o| 精品96久久久久久中文字幕无| 久久精品亚洲精品| 久久中文字幕一区二区三区| 91久久香蕉国产日韩欧美9色 | 性欧美办公室18xxxxhd| 国产一区二区三区奇米久涩| 久久夜色精品亚洲噜噜国产mv| 美脚丝袜一区二区三区在线观看 | 久久字幕精品一区| 欧美成人在线网站| 亚洲欧美日本在线| 久久国产精品亚洲va麻豆| 亚洲高清视频一区二区| 亚洲毛片av在线| 激情国产一区| 亚洲美女在线看| 国产色爱av资源综合区| 亚洲区一区二区三区| 国产一区日韩欧美| 亚洲欧洲在线看| 国产一区自拍视频| 亚洲最新在线| 亚洲黄色影片| 欧美一区1区三区3区公司| 日韩写真在线| 久久精彩视频| 午夜精品av| 欧美久久久久久久| 女女同性女同一区二区三区91| 国产精品国产成人国产三级| 欧美成人国产一区二区| 国产精品视频网站| 日韩一二在线观看| 亚洲第一精品夜夜躁人人爽| 午夜老司机精品| 亚洲一区三区电影在线观看| 老司机精品视频网站| 久久日韩粉嫩一区二区三区| 国产精品久久久久9999吃药| 亚洲精品视频在线观看免费| 亚洲国产日韩欧美| 久久亚洲私人国产精品va| 欧美在线看片| 国产精品久久久久久久久久久久久 | 欧美一区二区三区在线免费观看 | 欧美激情中文字幕一区二区| 国产毛片一区| 亚洲欧美一级二级三级| 亚洲欧美日韩精品综合在线观看| 欧美激情小视频| 亚洲第一毛片| 亚洲日本乱码在线观看| 麻豆视频一区二区| 亚洲高清资源| 99精品视频免费在线观看| 欧美韩日一区| 亚洲夜间福利| 亚洲欧美成人网| 欧美日韩在线视频首页| 日韩午夜av电影| 亚洲一区免费网站| 国产日产亚洲精品| 久久精品成人一区二区三区蜜臀| 欧美诱惑福利视频| 国产亚洲精品一区二区| 久久国产精品久久久久久电车 | 亚洲午夜精品17c| 亚洲欧美激情视频在线观看一区二区三区| 欧美精品在线观看| 一区二区免费看| 欧美有码视频| 在线观看成人av电影| 欧美国产高清| 亚洲午夜久久久久久久久电影院| 亚洲欧美精品| 国产色综合网| 嫩草国产精品入口| 一区二区国产日产| 久久免费观看视频| 日韩视频在线观看免费| 国产精品久久97| 久久免费国产精品| 日韩亚洲欧美一区| 久久久精品网| 日韩亚洲视频| 国产一区亚洲| 欧美日韩亚洲国产精品| 欧美一区二区三区播放老司机 | 久久精品麻豆| 99国产一区二区三精品乱码| 国产精品日韩在线播放| 久久精品欧美日韩| 日韩网站在线观看| 久久综合久久综合久久| 一区二区三区高清视频在线观看| 国产精品国产三级欧美二区| 欧美在线视频一区| 亚洲精品综合久久中文字幕| 久久九九免费| 亚洲一区二区三| 影音先锋日韩资源| 国产精品久久久久久久久免费樱桃 | 亚洲欧美国产精品va在线观看| 久久亚洲私人国产精品va| 一区二区三区 在线观看视| 国语自产在线不卡| 国产精品久久网站| 欧美国产日本韩| 久久久精品午夜少妇| 99热免费精品| 亚洲国产精品成人综合色在线婷婷| 小黄鸭精品aⅴ导航网站入口| 亚洲区一区二| 在线日韩电影| 狠狠色2019综合网| 国产人成一区二区三区影院| 欧美电影在线播放| 久久亚洲一区二区三区四区| 欧美一区成人| 欧美与黑人午夜性猛交久久久| av成人免费在线|