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

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

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

    Huion
    事業向左...愛情向右...失去的...我會在未來期待...
    posts - 1,comments - 3,trackbacks - 0
    問題提出:最近項目出現一個Article持久類,該持久類擁有一個Clob屬性用于記錄文章的內容!示例如下:

    public class Article implements Serializable{
        
    public Long articleId;
        
    public String author;
        
    public String title;
        
    public Date created;
        
    public Clob content;

    //getter
    //setter
    }


    后來發現,在查找文章列表的時候,每個Article都要從數據庫中加載出content!嚴重影響效率!

    解決方案1:

    在網上找相關的資料,利用hql可以解決問題:

    select new Article(a.articleId,a.author,a.title,a.created) from Article as a where

    記得要為 Article 添加構造函數,像上面的hql需要構造函數如:

    public Article(Long articleId,String author,String title,Date create){
    this.articleId = articleId;
    this.author = author;
    this.title =  title;
    this.create = create;
    }

    解決方案2:

    然而這樣子做,列表里面的Article還不夠輕量,于是突然有天在Hibernate官方網站找出更好的解決方法!那就是所謂的Light Weight模式,示例代碼如下:

    public class ArticleInfo implements Serializable{
        
    public Long articleId;
        
    public String author;
        
    public String title;
        
    public Date created;

    //getter
    //setter
    }


    public class Article extends ArticleInfo{
        
    public Clob content;

    //getter
    //setter
    }


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
    <hibernate-mapping>
    <class name="test.ArticleInfo" table="test_article" polymorphism="explicit" >
    <id name="articleId" column="article_id" type="java.lang.Long" length="30">
    <generator class="sequence">
    <param name="sequence">article_seq</param>
    </generator>
    </id>
    <property name="authorId" column="author_id" type="java.lang.String" length="10" not-null="true"/>

    <property name="title" column="title" type="java.lang.String" length="10" not-null="true"/>

    <property name="created" column="created" type="java.util.Date" not-null="true"/>
    </class>
    </hibernate-mapping>


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
    <hibernate-mapping>
    <class name="test.Article" table="test_article" polymorphism="explicit" >
    <id name="articleId" column="article_id" type="java.lang.Long" length="30">
    <generator class="sequence">
    <param name="sequence">article_seq</param>
    </generator>
    </id>
    <property name="authorId" column="author_id" type="java.lang.String" length="10" not-null="true"/>

    <property name="title" column="title" type="java.lang.String" length="10" not-null="true"/>

    <property name="created" column="created" type="java.util.Date" not-null="true"/>

    <property name="content" column="content" type="java.sql.Clob" not-null="true"/>
    </class>
    </hibernate-mapping>


    記得要加上 polymorphism="explicit" 表示為多態!

    這樣子,當我們需要加載大對象content的時候可以

    session.load(Article.class,articleId);
    OR
    String hql="select a from Article as a where...";

    如果,不需要用到大對象,則可以

    session.load(ArticleInfo.class,articleId);
    OR
    String hql="select a from ArticleInfo as a where ...";
    posted on 2005-06-12 22:44 一輝 閱讀(165) 評論(0)  編輯  收藏 所屬分類: Hibernate

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产午夜精品理论片免费观看| 亚洲天堂2016| 亚洲免费日韩无码系列| 国产一区二区三区在线观看免费| 亚洲人成网站在线观看播放青青| 99久热只有精品视频免费看| 久久久亚洲欧洲日产国码农村| 免费精品久久天干天干| 亚洲成色WWW久久网站| 国产午夜不卡AV免费| 亚洲AV乱码一区二区三区林ゆな| 久久成人a毛片免费观看网站| 亚洲伦另类中文字幕| 69式国产真人免费视频| 亚洲欧洲日韩国产| 嫩草影院免费观看| 亚洲AV成人无码网站| 全部免费a级毛片| 中文字幕不卡高清免费| 亚洲AV永久无码精品| 18禁无遮挡无码国产免费网站 | 中文字幕在亚洲第一在线| 成人自慰女黄网站免费大全| 久久精品国产亚洲AV麻豆~| 国产免费一区二区三区| 亚洲性线免费观看视频成熟| 国产国产人免费人成免费视频| 51午夜精品免费视频| 久久亚洲日韩看片无码| 成人免费毛片观看| 国产在线国偷精品免费看| 亚洲视频在线观看网址| 国产男女猛烈无遮挡免费网站| 午夜不卡AV免费| 久久精品国产亚洲av高清漫画| 最新免费jlzzjlzz在线播放| 特色特黄a毛片高清免费观看| 亚洲人成在线播放网站岛国| 成年女性特黄午夜视频免费看| 精品免费久久久久国产一区| 亚洲毛片无码专区亚洲乱|