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

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

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

    和風(fēng)細(xì)雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運(yùn)用之術(shù)自出。

    持久化對(duì)象級(jí)聯(lián)關(guān)系

    類之間關(guān)聯(lián)的Hibernate表現(xiàn)

    在Java程序中,類之間存在多種包含關(guān)系,典型的三種關(guān)聯(lián)關(guān)系有:一個(gè)類擁有另一個(gè)類的成員,一個(gè)類擁有另一個(gè)類的集合的成員;兩個(gè)類相互擁有對(duì)象的集合的成員.在Hibernate中,我們可以使用映射文件中的many-to-one, one-to-many, many-to-many來實(shí)現(xiàn)它們.這樣的關(guān)系在Hibernate中簡稱為多對(duì)一,一對(duì)多和多對(duì)多.

    多對(duì)一的類代碼

    事件與地點(diǎn)是典型的多對(duì)一關(guān)系,多個(gè)事件可以在一個(gè)地點(diǎn)發(fā)生(時(shí)間不同),一個(gè)地點(diǎn)可發(fā)生多個(gè)事件.它們的對(duì)應(yīng)關(guān)系是(多)事件對(duì)(一)地點(diǎn).
    兩個(gè)類的代碼如右:
    public class Event{
      private String id;
      private String name; 
      private Location location;
    }

    public class Location{
      private String id;
      private String name;
    }

    多對(duì)一的映射文件

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.Event"
        table="Event_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="name" column="name" />
        <many-to-one name="location" column="locationId" class="com.sitinspring.domain.Location"/>
      </class>
    </hibernate-mapping>


    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.Location"
        table="Location_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="name" column="name" />
      </class>
    </hibernate-mapping>

    多對(duì)一的表數(shù)據(jù)


    一對(duì)多的類代碼

    如果一個(gè)用戶有多個(gè)權(quán)限,那么User類和Privilege類就構(gòu)成了一對(duì)多的關(guān)系,User類將包含一個(gè)Privilege類的集合.

    public class User{
      private String id;
      private String name;
      private Set<Privilege> privileges=new LinkedHashSet<Privilege>();
    }

    public class Privilege{
      private String id;
      private String userId;
      private int privilegeLevel;
    }


    一對(duì)多的映射文件

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.User"
        table="User_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="name" column="name" />
        <set name="privileges">
          <key column="userId"/>
          <one-to-many class="com.sitinspring.domain.Privilege"/>
        </set>
      </class>
    </hibernate-mapping>


    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.Privilege"
        table="Privilege_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="userId" column="userId" />
        <property name="privilegeLevel" column="privilegeLevel" />
      </class>
    </hibernate-mapping>


    一對(duì)多的表數(shù)據(jù)



    多對(duì)多

    多對(duì)多關(guān)系 是指兩個(gè)類相互擁有對(duì)方的集合,如文章和標(biāo)簽兩個(gè)類,一篇文章可能有多個(gè)標(biāo)簽,一個(gè)標(biāo)簽可能對(duì)應(yīng)多篇文章.要實(shí)現(xiàn)這種關(guān)系需要一個(gè)中間表的輔助.

    類代碼如右:

    public class Article{
        private String id;
        private String name;
       
        private Set<Tag> tags = new HashSet<Tag>();
    }

    public class Tag{
        private String id;
        private String name;
       
        private Set<Article> articles = new HashSet<Article>();
    }

    多對(duì)多的映射文件

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.Article" table="ARTICLE_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="name" column="NAME" />

        <set name="tags" table="ARTICLETAG_TB"  cascade="all" lazy="false">
          <key column="ARTICLEID" />
          <many-to-many column="TAGID" class="com.sitinspring.domain.Tag" />
        </set>
      </class>
    </hibernate-mapping>


    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.auction">
      <class name="com.sitinspring.domain.Tag" table="TAG_TB">
        <id name="id" column="ID" >
          <generator class="uuid.hex"/>
        </id>
        <property name="name"  column="NAME" />
       
        <set name="articles" table="ARTICLETAG_TB" cascade="all" lazy="false">
          <key column="TAGID" />
          <many-to-many column="ARTICLEID" class="com.sitinspring.domain.Article" />
        </set>
      </class>
    </hibernate-mapping>


    多對(duì)多的表數(shù)據(jù)

     

    源碼下載:
    http://m.tkk7.com/Files/junglesong/HibernateMapping20080430203526.rar

    posted on 2008-04-30 20:33 和風(fēng)細(xì)雨 閱讀(804) 評(píng)論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 久久国产精品萌白酱免费| 免费高清A级毛片在线播放| 最新欧洲大片免费在线| 午夜在线a亚洲v天堂网2019| 午夜影院免费观看| 亚洲看片无码在线视频| 最近中文字幕完整免费视频ww| 亚洲一区二区三区高清视频| 亚洲成人高清在线| 99国产精品视频免费观看| 亚洲欧美黑人猛交群| 亚洲色精品88色婷婷七月丁香| 全部一级一级毛片免费看| 日韩va亚洲va欧洲va国产| 美女无遮挡拍拍拍免费视频| 亚洲国产人成在线观看| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲精品国产精品| 免费人成无码大片在线观看| 99re热精品视频国产免费| 免费在线观看亚洲| 中文字幕亚洲专区| 在线人成免费视频69国产| 亚洲精华国产精华精华液| 日韩午夜免费视频| 99爱在线精品视频免费观看9| 亚洲欧洲日本国产| 免费观看国产网址你懂的| 色在线亚洲视频www| 亚洲成a人片在线观看无码 | 青娱乐免费在线视频| 亚洲日本国产综合高清| 国产成人精品高清免费| 18禁美女黄网站色大片免费观看| 久久精品亚洲AV久久久无码| 亚洲日韩一页精品发布| 亚洲?V乱码久久精品蜜桃| 夜夜嘿视频免费看| 18国产精品白浆在线观看免费 | 亚洲Av综合色区无码专区桃色| 99久久免费观看|