<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的時候會發生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。

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


    網站導航:
     
    主站蜘蛛池模板: 手机在线免费视频| 精品国产免费一区二区三区| 国产精品免费无遮挡无码永久视频 | 日韩a在线观看免费观看| 亚洲日产2021三区| 中国xxxxx高清免费看视频| 亚洲人成电影在线天堂| www.av在线免费观看| 免费永久国产在线视频| 国产成人高清亚洲一区91| 中国性猛交xxxxx免费看| 亚洲人成网站在线观看播放| 精品国产免费人成网站| 亚洲成AV人片在线播放无码| 国产午夜无码精品免费看| 久久精品国产精品亚洲蜜月| 日本免费一区二区三区| 亚洲国产中文在线视频| 免费黄网在线观看| 亚洲好看的理论片电影| 91成人在线免费观看| 亚洲人成综合在线播放| 精品国产精品久久一区免费式| 国产AV无码专区亚洲AV蜜芽| 亚洲日韩在线观看| 久爱免费观看在线网站| 亚洲欧洲国产成人精品| 日日夜夜精品免费视频| 成人A毛片免费观看网站| 亚洲黄色免费网站| 国产日产成人免费视频在线观看| eeuss影院www天堂免费| 精品亚洲成a人片在线观看| 成人超污免费网站在线看| www永久免费视频| 亚洲视频在线播放| 日本免费人成黄页在线观看视频| 免费国产黄网站在线看| 91亚洲国产在人线播放午夜| 国产精品四虎在线观看免费 | 亚洲日韩看片无码电影|