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

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

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

    當Hibernate遭遇多個結構相同的表

    Posted on 2008-03-19 23:58 Norvid 閱讀(1757) 評論(0)  編輯  收藏 所屬分類: 點點滴滴
    在一些大數據量的應用中,通常會將一些數據量大的表分成多個。最簡單的情況是設置一個實時表,用來保存最近一段時間的數據,我們叫它recent_data;同時又有一個保存歷史數據的表,名叫history_data。當然,也可以采用一段時間一個表的方式,如一個月一張表:data_200803。

    recent_data保存最新的數據,通常是為了提供預覽、監視等對顯示速度要求高的功能,使用者此時往往是想要一個數據的大概印象,因此響應速度十分重要;而history_data則面向詳細查詢,這時使用者關注的數據,因此,慢是可以接受的。

    介紹背景介紹得有點跑題了,還是回來說說正題。面對recent_data和history_data這兩張表要使用hibernate進行封裝時,該怎么解決呢?

    這里有三個方法。

    1. 使用古老而笨拙的方法——為每個table建立一個class,如RecentData和HistoryData。然后在上層程序中使用這兩個類。
    優點:簡單,方便,快捷,還不費腦子!(僅對負責Hibernate封裝的人來說……)
    缺點:上層使用極其復雜,明明就是同一個東西,偏偏弄成兩個對象,要寫兩套實現……&@&*¥#%

    2. 建立一個基類Data,然后派生出RecentData和HistoryData,分別映射兩個表。派生出的兩個類不用寫什么東西,僅僅是extends了Data就行了。對外一致以基類Data出現,這樣上層使用時,就可以統一用Data類了。此法為第一種方法的改進版,也是我偏愛的解決方法。
    優點:Hibernate映射簡單,上層使用也簡單
    缺點:多了兩個類,盡管里面啥也沒有

    3. 使用Hibernate3新增加的entity-name特性,用一個類來映射多個table。這里有一個詳細的例子(http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=3150)
    優點:不用定義那么多類,映射也挺簡單
    缺點:Hibernate3才有此功能(如果你還在用之前的版本的話……)

    -- EOF --



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


    網站導航:
     

    posts - 0, comments - 9, trackbacks - 0, articles - 13

    Copyright © Norvid

    主站蜘蛛池模板: 亚洲欧洲春色校园另类小说| 在线a亚洲v天堂网2019无码| 亚洲a∨无码男人的天堂| 免费无码一区二区三区蜜桃| 亚洲最大激情中文字幕| 东方aⅴ免费观看久久av| 亚洲av无码国产精品色午夜字幕| 成人片黄网站色大片免费观看APP| 亚洲乱亚洲乱妇无码麻豆| 免费在线观看一级片| 亚洲欧洲尹人香蕉综合| 免费观看成人毛片a片2008| 亚洲精品乱码久久久久久V | a毛片在线免费观看| 婷婷精品国产亚洲AV麻豆不片 | 久香草视频在线观看免费| 精品亚洲一区二区三区在线观看| 中文字幕在线免费观看视频| 国产亚洲真人做受在线观看| 在线日本高清免费不卡| 亚洲色欲色欱wwW在线| 亚洲av高清在线观看一区二区| 三级黄色片免费看| 亚洲码在线中文在线观看| 午夜精品在线免费观看| 牛牛在线精品免费视频观看| 好看的电影网站亚洲一区| 妻子5免费完整高清电视| 精品在线观看免费| 亚洲国产精品热久久| 最近高清国语中文在线观看免费| 日本高清免费中文在线看| 91大神亚洲影视在线| 日本高清免费不卡视频| a毛片久久免费观看| 色老板亚洲视频免在线观| 久久久无码精品亚洲日韩软件| 亚洲免费视频观看| 黄页网址在线免费观看| 亚洲欧洲日韩综合| 亚洲人成伊人成综合网久久久|