<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。

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


    網站導航:
     
    主站蜘蛛池模板: 国产成人午夜精品免费视频| 中文字幕免费在线看线人| 日本无吗免费一二区| 亚洲精品天堂在线观看| 天天看免费高清影视| 亚洲精品午夜国产va久久| 午夜私人影院免费体验区| 亚洲日韩AV一区二区三区中文| 毛片A级毛片免费播放| 中文字幕无码亚洲欧洲日韩| 成人午夜18免费看| 在线观看亚洲视频| 青青草原亚洲视频| a级精品九九九大片免费看| 午夜亚洲www湿好大| 午夜免费1000部| 亚洲精品理论电影在线观看| 免费一级毛片免费播放| 成年大片免费高清在线看黄| 亚洲色成人网站WWW永久| 久久这里只精品99re免费| 亚洲成av人片不卡无码| 免费黄色大片网站| xxxxx做受大片视频免费| 久久久久亚洲精品成人网小说| 91精品免费在线观看| 亚洲s码欧洲m码吹潮| 亚洲综合日韩久久成人AV| 亚洲人成免费电影| 最新亚洲人成无码网www电影| 亚洲阿v天堂在线| 成人免费AA片在线观看| 日韩久久无码免费毛片软件 | 日韩中文字幕免费| 特级毛片aaaa免费观看| 亚洲精品免费在线观看| 永久黄网站色视频免费直播| 中文字幕永久免费| 亚洲乱妇老熟女爽到高潮的片| 国产亚洲精品拍拍拍拍拍| av无码国产在线看免费网站|