亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

Kodo EJB:實現類和類之間的關聯關系

2019-11-18 11:12:29
字體:
來源:轉載
供稿:網友

  對象和對象之間除了繼續關系之外,還存在著關聯關系:包括分作一對一、一對多、多對一和多對多,由于這幾種關系在Kodo EJB中的實現原理基本類似,因此本文中主要就一對一類關聯關系進行深入的講述,同時通過簡單例子的分析和實踐具體的說明如何使用Kodo EJB中提供的注釋來定義類和類之間的關聯關系,剩下的一對多、多對一和多對多三種關系將只在文章最后進行說明,請讀者參考一對一關系的實現過程。

  面向對象的世界里,類A和類B之間的一對一關系必須滿足如下條件:
  1. 對象A1引用了對象B1

  2. 類A其他對象An不可能應用同樣的對象B1
  在關系數據庫中,我們通常使用唯一外鍵的方式來實現一對一關系,下面這個圖說明了這種的情況。



  下面開始介紹一下Kodo EJB中和一對一關系實現相關的知識,為了說明的需要,我們首先定義一個虛擬的場景。

  模擬場景

  我們假定要完成一個圖書館治理系統,該系統中需要治理很多書,我們需要記錄書的基本信息如編號、書名、出版日期等基本信息,還需要記錄書的前言,序等信息。

  假設我們根據上面的需求,將書設計成一個類(Book),包括了書的編號和名稱兩個屬性,同時將書的前言信息設計成另外一個類(BookExtend),它包括了書的編號和前言信息兩個屬性。由于一本書有前言而且也不可能有其他的書前言部分會和他一樣,所以類Book和BookExtend之間很自然的形成了一對一的關系。這兩個類的屬性以及類之間的關系如下圖所示。



  [注]

  1、為了說明的簡單,例子設計時每個對象僅僅選擇了必要的屬性。

  2、上面的設計僅僅為了演示的要求而特意采用,不代表設計合理。

  Kodo EJB中和一對一關系實現相關的內容

  在Kodo EJB中,我們可以使用簡單的OneToOne注釋來聲明類和類之間的一對一關系,另外可選的,我們可以使用JoinColumn注釋來聲明兩個類對應的表之間使用什么字段來進行關聯。

  OneToOne

  OneToOne注釋提供了5個屬性供開發者定義類和類之間一對一關系的細節內容。
  1. targetEntity

    Class類型的屬性。

    定義關系類的類型,默認是該成員屬性對應的類類型,所以通常不需要提供定義。

  2. mappedBy

    String類型的屬性。

    定義類之間的雙向關系。假如類之間是單向關系,不需要提供定義,假如類和類之間形成雙向關系,我們就需要使用這個屬性進行定義,否則可能引起數據一致性的問題。比如上面的演示場景中,我們只是定義Book類有BookExtend屬性,而BookExtend并沒有Book屬性,那么他們是單向關系,如何BookExtend中也定義了Book屬性,那么Book和BookExtend之間就構成了雙向關系。

  3. cascade

    CascadeType[]類型。

    該屬性定義類和類之間的級聯關系。定義的級聯關系將被容器視為對當前類對象及其關聯類對象采取相同的操作,而且這種關系是遞歸調用的。舉個例子:Book和BookExtend有級聯關系,那么刪除Book時將同時刪除它所對應的BookExtend對象。而假如BookExtend還和其他的對象之間有級聯關系,那么這樣的操作會一直遞歸執行下去。

    cascade的值只能從CascadeType.PERSIST(級聯新建)、CascadeType.REMOVE(級聯刪除)、CascadeType.REFRESH(級聯刷新)、CascadeType.MERGE(級聯更新)中選擇一個或多個。還有一個選擇是使用CascadeType.ALL,表示選擇全部四項。

  4. fatch

    FetchType類型的屬性。

    可選擇項包括:FetchType.EAGER和FetchType.LAZY。前者表示關系類在主類加載的時候同時加載,后者表示關系類在被訪問時才加載。默認值是FetchType.EAGER。

  5. optional

    boolean類型的屬性。

    定義該關聯類對是否必須存在。假如設置為false,那么該屬性就不能設置為null。默認值是true。
  OneToOne用法舉例
public class Book{ // 其他內容… @OneToOne(optional=true,cascade=CascadeType.ALL) public BookExtend bookExtend; } 
  JoinColumn

  JoinColumn注釋用于定義主類在數據庫中對應的表通過什么字段和關系類的主鍵進行關聯,這個注釋是可選的,假如不提供該注釋,Kodo在使用”對象名_ID”和關聯表進行關聯(簡單情況下),比如演示場景中類Book的bookExtend沒有使用JoinColumn注釋進行聲明,我們使用Kodo EJB提供的Mapping Tool工具生成表格的時候,Book類對應的表Book中將自動加入列bookExtend_ID,它的類型將和BookExtend對應表的主鍵字段id類型保持一致。

  JoinColumn注釋中有兩個屬性:name和referencedColumnName屬性。
  1. name

    String類型。

    它用于指定主類對應的表中和關系類的主鍵進行關聯的字段的名稱,比如上例中,我們不希望使用默認的bookExtend_ID字段名進行關聯,我們可以在Book類中使用JoinColumn注釋bookExtend屬性,設置JoinColumn注釋為自己想要的名字比如extendID或者其他。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线视频| 亚洲成**性毛茸茸| 国产日韩一区在线| 一区二区成人av| 韩国精品美女www爽爽爽视频| 亚洲福利在线观看| 成人在线视频网站| 亚洲一区精品电影| 国产成人久久久| 亚洲国产精品专区久久| 少妇高潮 亚洲精品| 久久九九精品99国产精品| 日韩一级裸体免费视频| 91大神福利视频在线| 欧美日韩中文字幕在线视频| 精品久久久久久久久国产字幕| 欧美一级成年大片在线观看| 中文字幕亚洲综合久久筱田步美| 日韩中文字幕在线免费观看| 清纯唯美日韩制服另类| 91久久精品视频| 国产成人精品免费久久久久| 亚洲一级片在线看| 欧美不卡视频一区发布| 亚洲成人在线网| 久久这里只有精品99| 欧美专区福利在线| 欧美精品videos另类日本| 精品成人av一区| 国产成人97精品免费看片| 欧美午夜丰满在线18影院| 日韩在线免费观看视频| 国产欧美日韩丝袜精品一区| 美女视频久久黄| 91久热免费在线视频| 国产精品人人做人人爽| 亚洲欧洲成视频免费观看| 国产精品草莓在线免费观看| 国产精品久久一| 亚洲性夜色噜噜噜7777| 神马久久久久久| 亚洲www永久成人夜色| 亚洲综合在线中文字幕| 性欧美办公室18xxxxhd| 欧美精品一区二区三区国产精品| 亚洲男人天堂古典| 中文字幕久久久av一区| 久久久久亚洲精品国产| 国产精品∨欧美精品v日韩精品| 国产精品香蕉国产| 国产噜噜噜噜久久久久久久久| 国产成人91久久精品| 国产激情久久久久| 久久久999精品免费| 欧美国产欧美亚洲国产日韩mv天天看完整| 色偷偷亚洲男人天堂| 成人a在线视频| 亚洲区中文字幕| 国产成人高潮免费观看精品| yw.139尤物在线精品视频| 欧美极品少妇xxxxx| 亚洲精品福利免费在线观看| 久久久久久有精品国产| 中文字幕亚洲综合| 国产不卡在线观看| 成人女保姆的销魂服务| 国产亚洲精品一区二区| 韩国国内大量揄拍精品视频| 亚洲成人激情小说| 亚洲成人在线视频播放| 亚洲最大福利视频网| 久久亚洲精品成人| 91高清视频免费观看| 午夜精品一区二区三区av| 神马国产精品影院av| 久久久久国产一区二区三区| 欧美性猛交xxxx乱大交3| 这里只有精品视频| 亚洲精品久久久久久久久久久久久| 97免费视频在线| 国产婷婷成人久久av免费高清| 九九热99久久久国产盗摄| 欧美激情精品久久久久久蜜臀| 欧美床上激情在线观看| 国产成人精品视频在线观看| 97涩涩爰在线观看亚洲| 久久精品免费播放| 91在线精品视频| xvideos亚洲| 久久久久久久久国产精品| 国产精品亚洲一区二区三区| 欧美巨乳在线观看| 亚洲人成在线观看网站高清| 91高清免费在线观看| 精品精品国产国产自在线| 91久久久久久久一区二区| 日本一区二区不卡| 久久精品国产久精国产一老狼| 久久久久国色av免费观看性色| 91免费福利视频| 亚洲偷熟乱区亚洲香蕉av| 91精品国产自产在线观看永久| 日韩中文字在线| 26uuu久久噜噜噜噜| 日韩高清av一区二区三区| 97国产精品免费视频| 欧美黑人狂野猛交老妇| 69**夜色精品国产69乱| 日韩少妇与小伙激情| 97国产精品视频| 日韩在线观看免费全| 亚洲天堂成人在线| 精品久久久久久久久中文字幕| 日韩精品在线看| 亚洲老板91色精品久久| 欧美日产国产成人免费图片| 国产成人高潮免费观看精品| 久久久视频精品| 丁香五六月婷婷久久激情| 国产在线观看一区二区三区| 亚洲影院高清在线| 欧美巨乳在线观看| 色狠狠av一区二区三区香蕉蜜桃| 91九色视频导航| 欧美性猛交xxxx富婆弯腰| 欧美壮男野外gaytube| 中文字幕在线看视频国产欧美在线看完整| 91亚洲精品久久久| 福利一区福利二区微拍刺激| 97福利一区二区| 日韩av在线网页| 亚洲的天堂在线中文字幕| 国产福利精品av综合导导航| 成人在线观看视频网站| 播播国产欧美激情| 欧美日韩国产一区二区三区| 亚洲爱爱爱爱爱| 久久综合久中文字幕青草| 欧美一区二区大胆人体摄影专业网站| 久久久久亚洲精品成人网小说| 粉嫩老牛aⅴ一区二区三区| 欧美有码在线观看| 国内精品小视频| 亚洲第一中文字幕| 欧美精品久久久久久久免费观看| 日韩欧美在线视频免费观看| 91黄色8090| 91免费高清视频| 亚洲综合av影视| 亚洲欧美日韩精品久久亚洲区| 欧美日韩中文字幕| 色综合伊人色综合网站| 日韩在线观看av| 国产一区二区在线免费| 亚洲黄一区二区| 97成人精品区在线播放| 中文字幕精品在线视频| 国产99久久久欧美黑人| 国内精品国产三级国产在线专| 色偷偷av一区二区三区| 国产日本欧美一区二区三区在线| 黄色精品一区二区| 欧美寡妇偷汉性猛交| 久久精品国产69国产精品亚洲|