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

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

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

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Hibernate 數據結構( 樹、多對多 結構表示 )

    Posted on 2008-04-26 18:30 G_G 閱讀(2401) 評論(0)  編輯  收藏 所屬分類: hibernatejavaGeneral

    level 類:
    package?hbm;

    import?java.util.Set;

    /**
    ?*?@hibernate.class?table?=?"level"
    ?*?where?=?"?visible?=?0??"
    ?*?
    @author?Administrator
    ?*
    ?
    */
    public?class?Level?{
    ????
    private?long?id?;
    ????
    private?String?name?;
    ????
    private?Level?father?;
    ????
    private?Set<Level>?childSet?;
    ????
    private?Set<Level>?mmfathers?;
    ????
    private?Set<Level>?mmchilds?;
    ????
    ????
    private?int?visible??;
    ????
    ????
    public?Level(){}
    ????
    public?Level(String?name){??this.name?=?name?;?}
    ????
    ????
    public?Level(String?name,int?visible){this.visible?=?visible;??this.name?=?name?;?}
    ????
    /**
    ?????*?@hibernate.id?generator-class?=?"identity"
    ?????*?
    @return
    ?????
    */
    ????
    public?long?getId()?{
    ????????
    return?id;
    ????}
    ????
    public?void?setId(long?id)?{
    ????????
    this.id?=?id;
    ????}
    ????
    /**
    ?????*?@hibernate.property?
    ?????*?length?=?"20"
    ?????*?
    @return
    ?????
    */
    ????
    public?String?getName()?{
    ????????
    return?name;
    ????}
    ????
    public?void?setName(String?name)?{
    ????????
    this.name?=?name;
    ????}
    ????
    ????
    /**
    ?????*?@hibernate.many-to-one?
    ?????*?cascade?=?"save-update"
    ?????*?inverse?=?"false"
    ?????*?column?=?"fid"
    ?????*?
    @return
    ?????
    */
    ????
    public?Level?getFather()?{
    ????????
    return?father;
    ????}
    ????
    public?void?setFather(Level?father)?{
    ????????
    this.father?=?father;
    ????}
    ????
    ????
    /**
    ?????*?@hibernate.set?
    ?????*?lazy?=?"true"
    ?????*?table?=?"Level"
    ?????*?cascade?=?"save-update"
    ?????*?where?=?"?visible?=?0?"
    ?????*?@hibernate.collection-key?column?=?"fid"
    ?????*?@hibernate.collection-one-to-many?class?=?"hbm.Level"
    ?????*?
    @return
    ?????
    */
    ????
    public?Set<Level>?getChildSet()?{
    ????????
    return?childSet;
    ????}
    ????
    public?void?setChildSet(Set<Level>?childSet)?{
    ????????
    this.childSet?=?childSet;
    ????}
    ????
    ????
    /**
    ?????*?@hibernate.property?
    ?????*?
    @return
    ?????
    */
    ????
    public?int?getVisible()?{
    ????????
    return?visible;
    ????}
    ????
    public?void?setVisible(int?visible)?{
    ????????
    this.visible?=?visible;
    ????}
    ????
    ????
    /**
    ?????*?@hibernate.set
    ?????*?????????table?=?"level2level_mm"
    ?????*?????????lazy?=?"true"
    ?????*?????????inverse?=?"false"
    ?????*?????????cascade?=?"save-update"
    ?????*?????????@hibernate.collection-key?column?=?"mmchilds"
    ?????*?????????@hibernate.collection-many-to-many?
    ?????*?????????????class?=?"hbm.Level"
    ?????*?????????????column?=?"mmfathers"?
    ?????*?
    @return
    ?????
    */
    ????
    public?Set<Level>?getMmfathers()?{
    ????????
    return?mmfathers;
    ????}
    ????
    public?void?setMmfathers(Set<Level>?mmfathers)?{
    ????????
    this.mmfathers?=?mmfathers;
    ????}
    ????
    ????
    /**
    ?????*?@hibernate.set
    ?????*?????????table?=?"level2level_mm"
    ?????*?????????lazy?=?"true"
    ?????*?????????inverse?=?"false"
    ?????*?????????cascade?=?"save-update"
    ?????*?????????@hibernate.collection-key?column?=?"mmfathers"
    ?????*?????????@hibernate.collection-many-to-many?
    ?????*?????????????class?=?"hbm.Level"
    ?????*?????????????column?=?"mmchilds"?
    ?????*?
    @return
    ?????
    */
    ????
    public?Set<Level>?getMmchilds()?{
    ????????
    return?mmchilds;
    ????}
    ????
    public?void?setMmchilds(Set<Level>?mmchilds)?{
    ????????
    this.mmchilds?=?mmchilds;
    ????}
    ????

    }


    測試類:
    package?test;

    import?java.util.HashSet;
    import?java.util.List;
    import?java.util.Set;

    import?hbm.Level;

    import?org.hibernate.Hibernate;
    import?org.hibernate.Session;
    import?org.hibernate.Transaction;
    import?org.junit.Assert;
    import?org.junit.Test;

    import?unit.HibernateUtil;

    public?class?HbnUnit?{
    ????@Test?
    //樹形結構?數據添加
    ????public?void?level()?throws?Exception?{
    ????????Session?session?
    =?HibernateUtil.currentSession();
    ????????Transaction?tr?
    =??session.beginTransaction();
    ????????
    ????????Level?level?
    =?new?Level();
    ????????level.setName(
    "f1");
    ????????
    ????????Set
    <Level>?set?=?new?HashSet<Level>();
    ????????????set.add(
    new?Level("c1"));
    ????????????set.add(
    new?Level("c2",1));
    ????????????set.add(
    new?Level("c3"));
    ????????????set.add(
    new?Level("c4",1?));
    ????????????set.add(
    new?Level("c5"?));
    ????????????set.add(
    new?Level("c6",1?));
    ????????
    ????????level.setChildSet(set);
    ????????session.save(level);
    ????????session.flush()?;
    ????????session.clear();
    ????????tr.commit();
    ????????
    ????}
    ????
    ????@Test?
    //樹形結構?數據驗證
    ????public?void?sAll()?throws?Exception?{
    ????????Session?session?
    =?HibernateUtil.currentSession();
    ????????List
    <Level>?list?=??session.createQuery("?from?Level?tl?where?tl.father?is?null?").list();
    ????????
    for(?Level?tmp?:?list?){
    ????????????System.out.println(?tmp.getName()
    +"====="+(tmp.getVisible()==0)?);
    ????????????Assert.assertTrue(
    "?查出刪除數據?",?tmp.getVisible()==0);?
    ????????????
    ????????????
    for(??Level?tt?:?tmp.getChildSet()?){
    ????????????????Assert.assertTrue(
    "?查出刪除數據?",?tt.getVisible()==0);?
    ????????????}
    ????????}
    ????????Assert.assertTrue(
    "?沒有查出數據?",?list.size()>0?);
    ????????session.clear();
    ????}
    ????
    ????
    ????
    public?static?long?l1mm?=0l?;
    ????
    public?static?long?l2mm?=0l?;
    ????
    public?static?long?l3mm?=0l?;
    ????
    public?static?long?l5mm?=0l?;
    ????
    ????@Test?
    //多對多結構?數據添加
    ????public?void?contact()?throws?Exception?{
    ????????Session?session?
    =?HibernateUtil.currentSession();
    ????????Transaction?tr?
    =??session.beginTransaction();
    ????????
    ????????
    //?1?對?2,3??/?2?對?3,4?/?5?對?1,2,3,4
    ????????Level?level1?=?new?Level();
    ????????level1.setName(
    "f1");
    ????????
    ????????Level?level2?
    =?new?Level();
    ????????level2.setName(
    "f2");
    ????
    ????????Level?level3?
    =?new?Level();
    ????????level3.setName(
    "f3");
    ????
    ????????Level?level4?
    =?new?Level();
    ????????level4.setName(
    "f4");
    ????
    ????????Level?level5?
    =?new?Level();
    ????????level5.setName(
    "f5");
    ????
    ????????level1.setMmchilds(
    new?HashSet<Level>());
    ????????????level1.getMmchilds().add(level2);
    //2
    ????????????level1.getMmchilds().add(level3);
    ????????
    ????????level2.setMmchilds(
    new?HashSet<Level>());
    ????????level2.setMmfathers(
    new?HashSet<Level>());
    ????????????level2.getMmchilds().add(level3);
    //1
    ????????????level2.getMmfathers().add(level4);//1
    ????
    ????????level3.setMmfathers(
    new?HashSet<Level>());
    ????????????level3.getMmfathers().add(level4);
    //1
    ????????
    ????????level5.setMmchilds(
    new?HashSet<Level>());
    ????????????level5.getMmchilds().add(level1);
    //4
    ????????????level5.getMmchilds().add(level2);
    ????????????level5.getMmchilds().add(level3);
    ????????????level5.getMmchilds().add(level4);
    ????????????
    ????????????session.save(level1);
    ????????????session.save(level2);
    ????????????session.save(level3);
    ????????????session.save(level4);
    ????????????session.save(level5);
    ????????????
    ????????tr.commit();
    ????????
    ????????l1mm?
    =?level1.getId()?;
    ????????l2mm?
    =?level2.getId()?;
    ????????l3mm?
    =?level3.getId()?;
    ????????l5mm?
    =?level5.getId()?;
    ????????
    ????????session.clear();
    ????}
    ????
    ????@Test?
    //多對多結構?數據添加
    ????public?void?contactTest()?throws?Exception?{
    ????????Session?session?
    =?HibernateUtil.currentSession();
    ????????Level?level1?
    =?(Level)session.get(Level.class,?l1mm);
    ????????System.out.println(
    "?level1?---?");
    ????????System.out.println(?level1.getMmchilds().size()?);
    ????????System.out.println(?level1.getMmfathers()
    !=null?level1.getMmfathers().size():0?);
    ????????
    ????????
    ????????Level?level2?
    =?(Level)session.get(Level.class,?l2mm);
    ????????System.out.println(
    "?level2?---?");
    ????????System.out.println(?level2.getMmchilds().size()?);
    ????????System.out.println(?level2.getMmfathers()
    !=null?level2.getMmfathers().size():0?);
    ????????
    ????????Level?level3?
    =?(Level)session.get(Level.class,?l3mm);
    ????????System.out.println(
    "?level3?---?");
    ????????System.out.println(?level3.getMmchilds()
    !=null?level3.getMmchilds().size():0?);
    ????????System.out.println(?level3.getMmfathers()
    !=null?level3.getMmfathers().size():0?);
    ????????
    ????????Level?level5?
    =?(Level)session.get(Level.class,?l5mm);
    ????????System.out.println(
    "?level5?---?");
    ????????System.out.println(?level5.getMmchilds().size()?);
    ????????System.out.println(?level5.getMmfathers()
    !=null?level5.getMmfathers().size():0?);
    ????????
    ????}
    ????
    }


    hbm 配置結構:
    ?????
    ????
    <property?name="connection.driver_class">
    ????????org.gjt.mm.mysql.Driver
    ????
    </property>

    ????
    <property?name="connection.username">root</property>

    ????
    <property?name="connection.url">
    ????????
    <![CDATA[
    ????????????jdbc:mysql://localhost:3306/test?characterEncoding=utf8&connectionCollation=gbk_chinese_ci
    ????????????
    ]]>
    ????
    </property>

    ????
    <property?name="dialect">
    ????????org.hibernate.dialect.MySQLInnoDBDialect
    ????
    </property>
    ????
    <property?name="show_sql">true</property>


    ????
    <!--?JDBC?connection?pool?(use?the?built-in)?-->
    ????
    <!--?Mapping?files?-->
    ????
    <mapping?resource="hbm/Level.hbm.xml"?/>


    結果:
    Hibernate:?insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    update?level?set?fid=??where?id=?
    Hibernate:?
    select?level0_.id?as?id0_,?level0_.name?as?name0_,?level0_.fid?as?fid0_,?level0_.visible?as?visible0_?from?level?level0_?where?(??level0_.visible?=?0?)?and?(level0_.fid?is?null)
    f1
    =====true
    Hibernate:?
    select?childset0_.fid?as?fid1_,?childset0_.id?as?id1_,?childset0_.id?as?id0_0_,?childset0_.name?as?name0_0_,?childset0_.fid?as?fid0_0_,?childset0_.visible?as?visible0_0_?from?level?childset0_?where??(??childset0_.visible?=?0?)??and?childset0_.fid=?
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level?(name,?fid,?visible)?values?(?,??,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmchilds,?mmfathers)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmchilds,?mmfathers)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    insert?into?level2level_mm?(mmfathers,?mmchilds)?values?(?,??)
    Hibernate:?
    select?level0_.id?as?id0_0_,?level0_.name?as?name0_0_,?level0_.fid?as?fid0_0_,?level0_.visible?as?visible0_0_?from?level?level0_?where?level0_.id=??and?(??level0_.visible?=?0?)?
    ?level1?
    ---?
    Hibernate:?select?mmchilds0_.mmfathers?as?mmfathers0_,?mmchilds0_.mmchilds?as?mmchilds0_?from?level2level_mm?mmchilds0_?where?mmchilds0_.mmfathers=?
    2
    Hibernate:?
    select?mmfathers0_.mmchilds?as?mmchilds0_,?mmfathers0_.mmfathers?as?mmfathers0_?from?level2level_mm?mmfathers0_?where?mmfathers0_.mmchilds=?
    1
    Hibernate:?
    select?level0_.id?as?id0_0_,?level0_.name?as?name0_0_,?level0_.fid?as?fid0_0_,?level0_.visible?as?visible0_0_?from?level?level0_?where?level0_.id=??and?(??level0_.visible?=?0?)?
    ?level2?
    ---?
    Hibernate:?select?mmchilds0_.mmfathers?as?mmfathers0_,?mmchilds0_.mmchilds?as?mmchilds0_?from?level2level_mm?mmchilds0_?where?mmchilds0_.mmfathers=?
    1
    Hibernate:?
    select?mmfathers0_.mmchilds?as?mmchilds0_,?mmfathers0_.mmfathers?as?mmfathers0_?from?level2level_mm?mmfathers0_?where?mmfathers0_.mmchilds=?
    3
    Hibernate:?
    select?level0_.id?as?id0_0_,?level0_.name?as?name0_0_,?level0_.fid?as?fid0_0_,?level0_.visible?as?visible0_0_?from?level?level0_?where?level0_.id=??and?(??level0_.visible?=?0?)?
    ?level3?
    ---?
    Hibernate:?select?mmchilds0_.mmfathers?as?mmfathers0_,?mmchilds0_.mmchilds?as?mmchilds0_?from?level2level_mm?mmchilds0_?where?mmchilds0_.mmfathers=?
    0
    Hibernate:?
    select?mmfathers0_.mmchilds?as?mmchilds0_,?mmfathers0_.mmfathers?as?mmfathers0_?from?level2level_mm?mmfathers0_?where?mmfathers0_.mmchilds=?
    4
    Hibernate:?
    select?level0_.id?as?id0_0_,?level0_.name?as?name0_0_,?level0_.fid?as?fid0_0_,?level0_.visible?as?visible0_0_?from?level?level0_?where?level0_.id=??and?(??level0_.visible?=?0?)?
    ?level5?
    ---?
    Hibernate:?select?mmchilds0_.mmfathers?as?mmfathers0_,?mmchilds0_.mmchilds?as?mmchilds0_?from?level2level_mm?mmchilds0_?where?mmchilds0_.mmfathers=?
    4
    Hibernate:?
    select?mmfathers0_.mmchilds?as?mmchilds0_,?mmfathers0_.mmfathers?as?mmfathers0_?from?level2level_mm?mmfathers0_?where?mmfathers0_.mmchilds=?
    0



    主站蜘蛛池模板: 亚洲国产精品尤物YW在线观看| 亚洲香蕉免费有线视频| 免费国产成人高清视频网站| 亚洲熟妇无码AV| 女人18毛片水真多免费看 | 亚洲成a人片在线观看无码| 国产高清视频免费在线观看| AV在线亚洲男人的天堂| 一级毛片在播放免费| 中文字幕亚洲不卡在线亚瑟| 91免费在线视频| 亚洲国产精品久久久久| 最近中文字幕免费完整| 久久久久精品国产亚洲AV无码| 免费看黄视频网站| 亚洲第一综合天堂另类专| 免费吃奶摸下激烈视频| 久久WWW免费人成—看片| 亚洲av鲁丝一区二区三区| 亚洲电影在线免费观看| 日本亚洲色大成网站www久久| 日本xxwwxxww在线视频免费| 最近免费2019中文字幕大全| 亚洲黄色网站视频| 最近中文字幕mv免费高清视频7| 亚洲日本中文字幕天天更新| 凹凸精品视频分类国产品免费| 国产A∨免费精品视频| 亚洲天天做日日做天天看| 日本XXX黄区免费看| 男男gay做爽爽的视频免费| 在线观看亚洲精品福利片| 免费A级毛片无码视频| 亚洲色最新高清av网站| 狠狠亚洲狠狠欧洲2019| aⅴ在线免费观看| 美女羞羞免费视频网站| 久久夜色精品国产噜噜噜亚洲AV | v片免费在线观看| 亚洲日本在线免费观看| 免费一级毛片清高播放|