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

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

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

    posts - 0,  comments - 1,  trackbacks - 0
    EmylinkUpcode  1...................n  EmylinkUlink   一對多關系

    1.hbm.xml描述
      EmylinkUpcode.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    " <hibernate-mapping package="hbm">
     <class name="EmylinkUpcode" table="emylink_upcode">
      <id
       name="id" type="integer" column="plink_code"
      >
       <generator class="org.hibernate.id.IncrementGenerator"/>
      </id>

      <property
       name="account"
       column="account"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="plinkName"
       column="plink_name"
       type="string"
       not-null="true"
       length="50"
      />
      <property
       name="plinkExplain"
       column="plink_explain"
       type="string"
       not-null="false"
       length="100"
      />
      <property
       name="typeCode"
       column="type_code"
       type="string"
       not-null="false"
       length="8"
      />
     
      <set name="emylinkUlinks" inverse="true" lazy="true"  cascade="all"
           <key column="plink_code"/>
          <one-to-many class="EmylinkUlink"/>
      </set>

     </class> 
    </hibernate-mapping>

    操作級聯(cascade)關系。
    可選值:
    all : 所有情況下均進行級聯操作。
    none:所有情況下均不進行級聯操作。
    save
    -update:在執行save-update時
    進行級聯操作。
    delete:在執行delete時進行級聯操作。

     EmylinkUlink.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD//EN"
     "

    <hibernate-mapping package="hbm">
     <class
      name="EmylinkUlink"
      table="emylink_ulink"
     >
      <id
       name="id"
       type="integer"
       column="id"
      >
       <generator class="org.hibernate.id.IncrementGenerator"/>
      </id>

      <property
       name="account"
       column="account"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="link"
       column="link"
       type="string"
       not-null="true"
       length="200"
      />
      <property
       name="linkName"
       column="link_name"
       type="string"
       not-null="true"
       length="20"
      />
      <property
       name="explain"
       column="explain"
       type="string"
       not-null="false"
       length="500"
      />
      <property
       name="indate"
       column="indate"
       type="date"
       not-null="true"
       length="16"
       insert="false"                //不參與插入操作
       update="false"             //不參與更新操作
      />
      <property
       name="sort"
       column="sort"
       type="string"
       not-null="false"
       length="3"
      />
      <property
       name="private"
       column="private"
       type="string"
       not-null="false"
       length="1"
      />
      <many-to-one
       name="plinkCode"
       column="plink_code"
       class="EmylinkUpcode"
       not-null="true"
      >
      </many-to-one>
     </class> 
    </hibernate-mapping>


    2.POJO對象
      EmylinkUpcode.java
    //
        
    // primary key
        private java.lang.Integer id;

        
    // fields
        private java.lang.String account;
        
    private java.lang.String plinkName;
        
    private java.lang.String plinkExplain;
        
    private java.lang.String typeCode;

        
    // collections
        private java.util.Set<hbm.EmylinkUlink> emylinkUlinks;

    //

      EmylinkUlink.java
    //
    private int hashCode = Integer.MIN_VALUE;

        
    // primary key
        private java.lang.Integer id;

        
    // fields
        private java.lang.String account;
        
    private java.lang.String link;
        
    private java.lang.String linkName;
        
    private java.lang.String explain;
        
    private java.util.Date indate;
        
    private java.lang.String sort;
        
    private java.lang.String m_private;

        
    // many to one
        private hbm.EmylinkUpcode plinkCode;
    //

    通過EmylinkUpcode加載EmylinkUlink(注意EmylinkUpcode.hbm.xml中聲明了延遲加載)
    Session session = EmylinkSessionFactory.currentSession();
             Query q 
    = session.createQuery("from EmylinkUpcode where account='derek'");
                    List l 
    = q.list();
                   
                       EmylinkUpcode eu 
    =  (EmylinkUpcode)l.get(0);
                       System.out.println(eu.getPlinkName());
                       
    //Hibernate.initialize(eu.getEmylinkUlinks());//當延遲加載lazy=true時,強制加載及聯對象
                       
                       Set ul 
    = eu.getEmylinkUlinks(); 
                                         
                       Iterator
    <EmylinkUlink> it = ul.iterator();//lazy=true并且不使用強制加載,則此時才真真及聯加載
                       
                       
    while(it.hasNext()){
                        System.out.println(it.next().getLinkName());
                       }
     EmylinkSessionFactory.closeSession();  

    * 延遲加載   
       如果lazy=true(延遲加載), 加載EmylinkUpcode時,hibernate不會立即加載EmylinkUlink,只有當(Iterator<EmylinkUlink> it = ul.iterator();)執行時,hibernate才加載EmylinkUlink實例; 如果在加載前就關閉session,則報異常LazyInitializationException ; 可以使用Hibernate.initialize(Object o)強制及聯加載

    *J2SE5.0的泛型

    public void setEmylinkUlinks (java.util.Set<hbm.EmylinkUlink> emylinkUlinks) {
            
    this.emylinkUlinks = emylinkUlinks;
        }
    Iterator<EmylinkUlink> it = ul.iterator();                   
                       
    while(it.hasNext()){
                        EmylinkUlink el 
    = it.next();//無需進行強制類型轉換
                        System.out.println(el.getLinkName());
                       }

    emylinkUlinks集合中只能存放EmylinkUlink對象,從集合中獲取對象無需再類型轉換
     
    struts+spring+hibernate關于hibernate中lazy="true"的問題。web.xml中用   

              <filter>   
                      
    <filter-name>openSessionInViewFilter</filter-name>   
                      
    <filter-class>org.springframework.orm.hibernate.support.OpenSessionInViewFilter</filter-class>   
              
    </filter>   
        
              
    <filter-mapping>   
                      
    <filter-name>openSessionInViewFilter</filter-name>   
                      
    <url-pattern>*.do</url-pattern>   
              
    </filter-mapping>

      它的原理就是:打開頁面的時候打開session,一直到頁面裝載完畢才關閉session,這樣就解決了lazy="true"時session   is   closed的問題。
      關于OpenSessionInViewFilter 延遲加載失效問題
    http://www.javaeye.com/topic/15057
              OpenSessionInView的效率問題  http://www.javaeye.com/topic/17501

    posted on 2008-03-27 17:33 火焰出林 閱讀(1215) 評論(0)  編輯  收藏 所屬分類: J2EE
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(1)

    隨筆分類

    文章分類(25)

    文章檔案(23)

    新聞檔案(8)

    相冊

    最新隨筆

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲精品麻豆av| 国产a视频精品免费观看| 成人永久免费高清| 亚洲一卡2卡3卡4卡5卡6卡 | 韩国18福利视频免费观看| 亚洲导航深夜福利| 国产卡一卡二卡三免费入口| 亚洲一区二区三区在线观看蜜桃| 2019中文字幕免费电影在线播放 | 亚洲国产午夜精品理论片 | 免费福利电影在线观看| 婷婷亚洲久悠悠色悠在线播放| 大地资源网高清在线观看免费| 亚洲av午夜福利精品一区人妖| 外国成人网在线观看免费视频| 亚洲国产精品第一区二区| 2021在线永久免费视频| 亚洲欧美日韩国产精品一区| 日韩一区二区在线免费观看| 2022免费国产精品福利在线| 亚洲va无码va在线va天堂| 91成年人免费视频| 亚洲av无码专区在线电影| 亚洲欧洲中文日韩av乱码| 最新亚洲成av人免费看| 亚洲精品中文字幕无码AV| 永久免费看bbb| 在线观看免费视频一区| 亚洲春色另类小说| 亚洲av无码专区在线观看素人| a级毛片免费观看视频| 国产成人亚洲精品| 亚洲国产精品成人久久蜜臀 | 亚洲精品福利网泷泽萝拉| 精品无码国产污污污免费| www免费黄色网| 亚洲乱码一二三四五六区| 亚洲高清无码综合性爱视频| 8x成人永久免费视频| 日韩色视频一区二区三区亚洲| 久久青草亚洲AV无码麻豆|