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

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

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

    posts - 68, comments - 19, trackbacks - 0, articles - 1
    1.one to many 單向
    這是一個用的比較多的對應關系,比如班級和學生,一個Classes對象對應著多個Stundent,那就需要在Classes類中持有對Stundent的引用,而此引用是一個Student對象的集合,因此應該在Classes的映射文件中描述此集合,因為hibernate對Set接口進行了擴展,所以Hibernate中的集合描述一般選擇Set。

    Classes類:
    private int id;
    private String name;
    private Set<Student> students;

    Student類:
    private int id;
    private String name;

    映射文件:
     <class name="com.vle.domain.Classes" table="t_classes">
      <id name="id"><generator class="native"/></id>
      <property name="name"/>
      <set name="student" >
       <key column="classesid"/>  <!--key標簽會在多的一端加入一個外鍵-->
       <one-to-many class="com.vle.domain.Student"/>
      </set>
     </class>

    映射一旦建立,能從Classes對象得到Student集合的迭代輸出,因為是單向,所以不能從學生得到班級。一般一對多設置成雙向,因為一旦將classesid屬性設置為非空,Classes在insert的時候會發(fā)生sql錯誤。所以很多時候關系由多的一方維護。

    2.one to many 雙向
    讓Student也知道和Classes的關系,反過來,是多個Student對象對應一個Classes對象,即many to one.此種關系是為了解決單向出現的問題,而不是需求驅動。
    Student:
    private Classes classes;

    映射文件:
     <class name="com.vle.domain.Student">
      <id name="id"><generator class="native"/></id>
      <property name="name"/>
      <many-to-one name="classes" column="classesid"/>
     </class>
    這里藍色字體部分一定要與Classes映射文件中的外鍵字段對應,否則不能保存到同一個字段。同時,要一的一端禁用維護關系:
    <set name="student" inverse="true">
    反轉后只能查詢,不能更新。

    3.many to many 單向
    User-->Role 用戶與角色
    User:
    private int id;
    private String name;
    private Set<Role> roleSet;
    Role:
    private int id;
    private String name;

    映射文件:
     <class name="User" table="t_user">
      <id name="id">
       <generator class="native"/>
      </id>
      <property name="name"/>
      <set name="roleSet" table="t_user_role">
       <key column="userid"/>
       <many-to-many class="Role" column="roleid"/>
      </set>
     </class>

    4.many to many 雙向
    只需要在Role類中引用User對象作為Set集合的元素并且在role映射文件中加入同樣的描述:
    private Set<User> userSet;

     <class name="Role" table="t_role">
      <id name="id">
       <generator class="native"/>
      </id>
      <property name="name"/>
      <set name="userSet" table="t_user_role">
       <key column="roleid"/>
       <many-to-many class="User" column="userid"/>
      </set>
     </class>
    兩個映射文件對應的表格一定是同一個--t_user_role。

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


    網站導航:
     
    主站蜘蛛池模板: 国产精品无码免费专区午夜| 亚洲娇小性xxxx| 九一在线完整视频免费观看| 亚洲国产精品人人做人人爽| 最新亚洲春色Av无码专区| 在线观看亚洲AV每日更新无码 | 蜜臀91精品国产免费观看| avtt亚洲天堂| aa午夜免费剧场| 久久亚洲国产精品一区二区| 亚洲精品伊人久久久久| 成年男女男精品免费视频网站| 久久久久亚洲国产| 日韩成人免费aa在线看| 亚洲综合色丁香麻豆| 2019中文字幕在线电影免费| 免费一级特黄特色大片在线观看| 麻豆一区二区三区蜜桃免费| 亚洲欧洲久久av| 久久aa毛片免费播放嗯啊| 国产精品无码一二区免费| 羞羞视频在线免费观看| 亚洲一区二区三区国产精品| 亚洲av乱码一区二区三区 | 色多多免费视频观看区一区| 亚洲av无码成人精品区| 精品国产免费一区二区三区香蕉| 亚洲人成影院在线| 免费看a级黄色片| 丝袜捆绑调教视频免费区| 中文字幕亚洲免费无线观看日本 | 亚洲中文字幕AV在天堂| 免费一级毛片不卡不收费| 日本免费污片中国特一级| 黑人大战亚洲人精品一区 | 亚洲日韩中文无码久久| 1000部拍拍拍18勿入免费凤凰福利| 亚洲午夜无码久久久久小说 | 亚洲国模精品一区 | 日本特黄a级高清免费大片| 亚洲精品偷拍视频免费观看|