多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > [置頂] 持久化API(JPA)系列(八)實(shí)體關(guān)系映射(ORM)之單表映射@EmbeddedId

[置頂] 持久化API(JPA)系列(八)實(shí)體關(guān)系映射(ORM)之單表映射@EmbeddedId

來源:程序員人生   發(fā)布時(shí)間:2015-07-29 08:22:53 閱讀次數(shù):3385次
接上文《持久化API(JPA)系列(7)實(shí)體關(guān)系映照(ORM)之單表映照@IdClass》

本文將介紹《聯(lián)合主鍵:使用@EmbeddedId嵌入外部主鍵》

上文是通過@IdClass援用外部主鍵,聯(lián)合主鍵也能夠采取嵌入式主鍵替換。


1)新建外部主鍵類Family2.java

設(shè)置聯(lián)合主鍵man和woman,因另外部主鍵也需要定義兩個(gè)相同的變量,并添加1個(gè)以兩個(gè)變量為輸入的構(gòu)造函數(shù),同時(shí)添加getter/setter函數(shù)。

主鍵類必須滿足:

1.必須實(shí)現(xiàn)Serializable接口,必須有默許的public無參數(shù)的構(gòu)造方法

2.必須覆蓋equals和hashCode方法,這些要求與使用復(fù)合主鍵的要求相同。

將主鍵類使用@Embeddable標(biāo)注,表示這是1個(gè)嵌入式類。

 

package com.tgb.itoo.exam.entity; import java.io.Serializable; import javax.persistence.Embeddable; @SuppressWarnings("serial") @Embeddable public class Family2PK implements Serializable { private String man;//丈夫 private String woman;//妻子 public Family2PK() { } public Family2PK(String man, String woman) { this.man = man; this.woman = woman; } ....//同F(xiàn)amily.java中的函數(shù) }

2)使用@EmbeddedId在試題Bean類Family2.java中嵌入外部主鍵

通過注釋符來設(shè)定與表、字段的映照關(guān)系。

該類有以下特點(diǎn):

1.映照的表名為family2.java,目的是與上文Demo中family.java辨別

2.通過@EmbeddedId標(biāo)簽嵌入了外部主鍵Family2PK的實(shí)例id,表示被嵌入的主鍵變量

3.并分別添加1個(gè)無參和有參的構(gòu)造函數(shù),來常見id的實(shí)例。

4.在getMan()、setMan()、getWoman()、setWoman()函數(shù)中,分別援用id的值。

  

package com.tgb.itoo.exam.entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.Table; @SuppressWarnings("serial") @Entity @Table(name="family2") public class Family2 implements Serializable { @EmbeddedId private Family2PK id;//嵌入式主鍵 private String address;// 地址 //初始化 public Family2() { this.id=new Family2PK(); } public Family2(String man,String woman) { this.id=new Family2PK(man,woman); } @Column(name="man") public String getMan() { return this.id.getMan(); } public void setMan(String man) { this.id.setMan(man); } @Column(name="woman") public String getWoman() { return this.id.getWoman(); } public void setWoman(String woman) { this.id.setWoman(woman); } @Column(name="address" ,length=100) public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }

3)新建遠(yuǎn)程接口類Family2DAORemote.java

定義兩個(gè)接口:新增、根據(jù)主鍵查詢

同上文:FamilyDAORemote.java

4)開發(fā)實(shí)現(xiàn)類Family2DAO.java

1.首先構(gòu)造1個(gè)主鍵對象Family2PK
2.后調(diào)用find()方法根據(jù)該主鍵對象進(jìn)行查詢

同上文:FamilyDAO.java

 5)測試:客戶端調(diào)用

同上文:Family2DAOClient.java

============================================================================

總結(jié)

      通過兩個(gè)Demo可以看出,使用@IdClass指定外部主鍵和使用@EmbeddedId嵌入外部主鍵,的主要區(qū)分在于兩個(gè)文件:FamilyPK.java主鍵類和Family.java,接下來通過截圖對照1下吧:




生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 456亚洲视频| 日韩综合久久 | 国产精品嫩草影院人体模特 | 波多野结衣午夜 | 国产成人美女福利在线观看 | 欧美一级视频免费看 | 国产精品三区四区 | 一区二区在线观看视频 | 欧美xxxx做受欧美gay | 欧美日韩国产一区二区三区 | 日本无卡码免费一区二区三区 | 亚洲精品免费观看 | 亚洲精品国产福利在线观看 | 91伊人国产 | 天堂在线观看 | 日本一级高清不卡视频在线 | 免费在线一级毛片 | 成人精品一级毛片 | 尤物视频在线观看视频 | 校园春色 自拍偷拍 | 亚洲26uuuu最新地址 | 欧美日韩免费大片 | 天天天做天天天天爱天天想 | 亚洲欧美日韩精品久久 | 男女www视频| 亚洲免费成人 | 国产福利片在线观看 | 真实男女xx00动态视频 | 最近中文字幕1视频 | 最近最新中文字幕高清中文字幕网 | 欧美一区中文字幕 | xx视频在线观看 | 欧美在线视频观看 | 亚洲一区自拍 | 欧美激情久久久久久久大片 | 国产一级在线观看视频 | 98精品视频 | 亚洲综合网址 | 午夜国产理论 | 欧美监狱性暴一级毛片 | 欧美a在线播放 |