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

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

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

    java技術

    hibernate spring struts

    BlogJava 聯系 聚合 管理
      18 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

    一對多(One-to-Many)
    使用@OneToMany批注可定義一對多關聯,一對多關聯可以是雙向關聯。
    在EJB3規范中多對一這端幾乎總是雙向關聯中的主體(owner)端,而一對多這端關聯批注為@OneToMany(mappedBy...)
    @Entity
    Public class Troop{
       @OneToMany(mappedBy=”troop”)
    Public Set<Soldier> getSoldiers(){
    ......
    }

    @Entity
    Public class Soldier{
       @ManyToOne
       @JoinColumn(name=”troop_fk”)
    Public Troop getTroop(){
    ......
    }

    Troop通過troop屬性和Soldier建立一對多的雙向關聯,在mappedBy端不必也不能再定義任何物理映射。
    對于一對多的雙向映射,如果要一對多這一端維護關聯關系,你需要刪除mappedBy元素并將多對一這端的@JoinColoumn的insertable和updatabel設置為false。這種方案不會得到什么明顯的優化,而且還會增加一些附加的UPDATE語句。

    單向:
    通過在被擁有的實體端(owned entity)增加一個外鍵列來實現一對多單向關聯是很少見的,也是不推薦的,建議通過一個聯接表來實現這種關聯(下面會講到)。
    @JoinColoumn批注來描述這種單向關聯關系
    @Entity
    Public class Customer{
       @OneToMany
    @JoinColoumn(name=”CUST_ID”)
    Public Set<ticket> getTickets() {
    .....
    }
    @Entity
    Public class Ticket{
       ...
    }
    Customer通過CUST_ID列和Ticket建立了單向關聯關系
    通過關聯表處理單向關聯:
    通過聯接表處理單向一對多關聯是首選方式,這種關聯通過@JoinTable批注進行描述
    @Entity
    Public class Trainer{
    @OneToMany
    @JoinTable(
       name = "TrainedMonkeys",
      jonColumns = {@JoinColumn(name="trainer_id"},
       inverseJoinColumns = @JoinColumn(name = "monkey_id")
       )
    public Set<Monkey> getTrainedMonkeys() {
          return trainedMonkeys;
       }
    ......
    }

    @Entity
    public class Monkey {
    ...//no bidir
    }

    上面這個例子中,Trainer通過TrainedMonkeys表和Monkey建立了單向關聯,其中外鍵trainer_id關聯到Trainer(joinColoumn),而外鍵monkey_id關聯到Monkey(inversejionColoumns)
    默認處理機制:
    通過聯接表來建立單向一對多關聯不需要描述任何物理映像,表名由以下三個部分組成:主表(ownertable)表名+從表(the other side table)表名,指向主表的外鍵名:主表表名+下劃線+主表主鍵列名,指向從表的外鍵名:主表所對應實體的屬性名+下劃線+從表主鍵列名,指向從表的外鍵定義為唯一約束,用來表示一對多的關聯關系。
    @Entity
    public class Trainer{
       @OneToMany
       Public Set<Tiger> getTrainedTigers(){
    ... ...
    }

    @Entity
    public class Tiger{
    .. ..//no bidir
    }
    上面這個例子中,Trainer和Tiger通過聯接表Trainer_Tiger建立單向關聯關系,其中外鍵trainer_id關聯到Trainer,而外鍵trainedTigers_id關聯到Tiger

    posted on 2009-11-05 15:26 just 閱讀(1785) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲电影在线播放| 久久久久亚洲av无码专区蜜芽| 日韩亚洲国产高清免费视频| 亚洲毛片免费视频| 亚洲美女激情视频| 97免费人妻无码视频| 久久亚洲美女精品国产精品| 114级毛片免费观看| 亚洲国产精品成人精品小说| 在线观看免费人成视频色| 亚洲欧美黑人猛交群| 国产精品久免费的黄网站| 特级av毛片免费观看| 国产精品亚洲视频| 久久国产免费观看精品| 亚洲嫩草影院在线观看| 最近中文字幕大全免费视频| 亚洲人成777在线播放| 啦啦啦在线免费视频| 亚洲精品动漫免费二区| 亚洲欧洲精品成人久久曰影片| 波霸在线精品视频免费观看| 亚洲av日韩综合一区在线观看| 日本成年免费网站| 高h视频在线免费观看| 亚洲精品美女久久久久99| 国产精品入口麻豆免费观看| 国产亚洲视频在线观看网址| 亚洲人成伊人成综合网久久久| 美女内射无套日韩免费播放| 亚洲精品无码一区二区| 亚洲综合国产精品第一页| 无码国产精品一区二区免费16| 99热亚洲色精品国产88| 亚洲黄黄黄网站在线观看| 日本免费中文字幕| 亚洲男同gay片| 亚洲国产精品自在线一区二区| 在线观看免费a∨网站| 两性色午夜免费视频| 激情五月亚洲色图|