<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    hibernate annoation (八 關聯映射)

    Posted on 2009-11-02 14:54 瘋狂 閱讀(373) 評論(0)  編輯  收藏 所屬分類: hibernate

    onetoone:單向

    1,主鍵關聯:

     在關聯放使用@OneToOne

    sql語句:(類代碼見同前面的代碼)

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), b_id integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id))   
    3. alter table A add index FK41FCD34905 (b_id), add constraint FK41FCD34905 foreign key (b_id) references B (id)  

    可以使用@PrimaryKeyJoinColumn進行關聯

    2 雙向:

    在關聯方使用 

    @OneToOne(cascade=CascadeType.ALL)
    @JoinColumn(name="b")

    被關聯方使用

    @OneToOne(mappedBy="b")

    最終sql:

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), b integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id))   
    3. alter table A add index FK41FCA54B4F (b), add constraint FK41FCA54B4F foreign key (b) references B (id)  

    如果不寫

    @OneToOne(mappedBy="b")則會在被關聯放也生成一個字段

    最終代碼:

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), i_id integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), a_id integer, primary key (id))   
    3. alter table A add index FK41FCD6779E (i_id), add constraint FK41FCD6779E foreign key (i_id) references B (id)   
    4. alter table B add index FK42FCD2D4A5 (a_id), add constraint FK42FCD2D4A5 foreign key (a_id) references A (id)  

     

     

      如果沒有寫@JoinColumn(name="b")則默認是關聯屬性名+下劃線+id

    最終sql:

     

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), b_id integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id))   
    3. alter table A add index FK41FCD34905 (b_id), add constraint FK41FCD34905 foreign key (b_id) references B (id)  

     可以使用@JoinColumn(referencedColumnName="bname")讓主關聯方不關聯被關聯放的主鍵

    最終sql

    Java代碼 復制代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), b_bname varchar(255), primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id), unique (bname))   
    3. alter table A add index FK41E47CD6BD (b_bname), add constraint FK41E47CD6BD foreign key (b_bname) references B (bname)  

      3 關聯表

     使用

    @OneToOne(cascade=CascadeType.ALL)
     @JoinTable(name="centert",joinColumns=@JoinColumn(name="aid"),inverseJoinColumns=@JoinColumn(name="bid"))

    最終sql:

    寫道
    create table A (id integer not null auto_increment, aname varchar(255), primary key (id))
    create table B (id integer not null auto_increment, bname varchar(255), primary key (id))
    create table centert (bid integer, aid integer not null, primary key (aid))
    alter table centert add index FK27A6BEBFFCA6C7EA (bid), add constraint FK27A6BEBFFCA6C7EA foreign key (bid) references B (id)
    alter table centert add index FK27A6BEBFFCA6C428 (aid), add constraint FK27A6BEBFFCA6C428 foreign key (aid) references A (id)

     

    manytoone

    和onetoone很相似

    特殊情況:果不寫:mappedBy這會產生中間表:

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), i_id integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id))   
    3. create table B_A (B_id integer not null, a_id integer not null, unique (a_id))   
    4. alter table A add index FK41FCD6779E (i_id), add constraint FK41FCD6779E foreign key (i_id) references B (id)   
    5. alter table B_A add index FK10384FCD34905 (B_id), add constraint FK10384FCD34905 foreign key (B_id) references B (id)   
    6. alter table B_A add index FK10384FCD2D4A5 (a_id), add constraint FK10384FCD2D4A5 foreign key (a_id) references A (id)  

     

     如

    targetEntity屬性可以關聯接口

    例如接口代碼

    Java代碼
    1. public interface I {   
    2.   
    3. }  

     class B implments I

    關聯方:

    Java代碼
    1. private I i;   
    2. @ManyToOne(targetEntity=B.class)   
    3.     public I getI() {   
    4.         return i;   
    5.     }  

     

    最終sql:

    Java代碼
    1. create table A (id integer not null auto_increment, aname varchar(255), i_id integer, primary key (id))   
    2. create table B (id integer not null auto_increment, bname varchar(255), primary key (id))   
    3. alter table A add index FK41FCD6779E (i_id), add constraint FK41FCD6779E foreign key (i_id) references B (id)  

     

    主站蜘蛛池模板: 男性gay黄免费网站| 亚洲午夜日韩高清一区| 亚洲av综合av一区二区三区| heyzo亚洲精品日韩| 久久久国产精品福利免费| 免费一看一级毛片全播放| 在线观看肉片AV网站免费 | 国产成人精品无码免费看| 亚洲韩国精品无码一区二区三区 | 亚洲精品国产字幕久久不卡| 中文字幕成人免费视频| 337p日本欧洲亚洲大胆人人| 亚洲综合在线视频| 免费播放春色aⅴ视频| 18禁黄网站禁片免费观看不卡| 亚洲区不卡顿区在线观看| 亚洲一区在线免费观看| 特黄特色大片免费| 亚洲综合视频在线| 亚洲综合久久夜AV | 久久久久国色AV免费观看性色 | 久久久久亚洲av无码专区导航 | 亚洲欧洲日产国码久在线| 亚洲中文字幕无码久久2017| 好吊妞在线新免费视频| 国产精品免费AV片在线观看| 亚洲JLZZJLZZ少妇| 亚洲精品在线视频观看| 激情97综合亚洲色婷婷五| 四虎影院免费在线播放| 1000部国产成人免费视频| 中文字幕看片在线a免费| 日韩色视频一区二区三区亚洲| 亚洲国产成人爱av在线播放| 久久国内免费视频| 大地资源网高清在线观看免费| 亚洲视频在线观看| 亚洲桃色AV无码| 亚洲无码视频在线| 国产免费69成人精品视频| 九九九精品成人免费视频|