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

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

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

    隨筆-86  評論-33  文章-0  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 2006-09-07 16:20 Derek.Guo 閱讀(4329) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 亚洲日韩国产精品乱| 亚洲国产精品碰碰| 国产成人免费一区二区三区| 四虎永久成人免费影院域名| 亚洲精品乱码久久久久久久久久久久 | 波多野结衣中文字幕免费视频| 无码人妻久久一区二区三区免费丨| 暖暖免费高清日本中文| 亚洲国产天堂久久综合| 亚洲av无码一区二区三区不卡 | 香蕉视频免费在线播放| 在线人成免费视频69国产 | 精品国产免费一区二区三区香蕉| 亚洲黄色免费在线观看| 国产精品无码素人福利免费| 在线亚洲97se亚洲综合在线| 亚洲精品不卡视频| 立即播放免费毛片一级| 久久这里只精品99re免费 | 1000部拍拍拍18勿入免费视频软件| 日产乱码一卡二卡三免费| 亚洲精品无码午夜福利中文字幕 | 噜噜综合亚洲AV中文无码| a毛片免费全部播放完整成| 1000部国产成人免费视频| 亚洲?V无码乱码国产精品| 亚洲精品综合一二三区在线 | 亚洲成人免费在线观看| 特级做a爰片毛片免费看| 色欲国产麻豆一精品一AV一免费| 日韩免费a级在线观看| 亚洲AV无码精品色午夜在线观看| 亚洲精品精华液一区二区| 美女视频黄的免费视频网页 | mm1313亚洲国产精品无码试看| 中文字幕无码免费久久| 色吊丝最新永久免费观看网站 | 一级特黄aaa大片免费看| 99在线精品免费视频九九视| 不卡精品国产_亚洲人成在线| 国产成人精品日本亚洲直接|