<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免费线观a| 亚洲偷偷自拍高清| 免费a级毛片高清视频不卡| 亚洲一区二区影视| 人禽杂交18禁网站免费| 亚洲熟妇无码八V在线播放| 性xxxx视频播放免费| 在线观看国产一区亚洲bd| 国产乱弄免费视频| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲1区2区3区精华液| 免费大香伊蕉在人线国产 | 亚洲国产综合专区电影在线| 最近的中文字幕大全免费8 | 一日本道a高清免费播放| 国产亚洲真人做受在线观看| 99爱免费观看视频在线| 欧洲 亚洲 国产图片综合| 国产精品二区三区免费播放心| 成年网在线观看免费观看网址| 久久精品国产亚洲沈樵| 性短视频在线观看免费不卡流畅| 亚洲真人无码永久在线观看| 亚洲精品国产精品乱码不卞| 国产好大好硬好爽免费不卡| 亚洲最大的黄色网| 亚洲色婷婷综合开心网| 91在线手机精品免费观看| 亚洲色成人网站WWW永久四虎| 亚洲日韩精品无码专区网站| 1000部啪啪毛片免费看| 男女猛烈xx00免费视频试看| 亚洲三级电影网站| gogo全球高清大胆亚洲| 精品香蕉在线观看免费|