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

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

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

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    Hibernate動態化

    Posted on 2006-07-23 21:13 canonical 閱讀(5086) 評論(8)  編輯  收藏 所屬分類: 軟件開發
    ? hibernate的應用中一般總是將entity映射為強類型的java類,這為程序操縱帶來很多便利,同時可以將大量動態過程隱蔽在對象包絡之下。映射為java類的一個主要問題在于無法在程序運行時刻對于程序進行修改,而數據結構的局部修改幾乎是無法避免的。hibernate3本身支持動態數據模型,它允許我們把entity映射為Map數據類型, 當數據結構發生變化的時候, 只需要修改hbm文件即可改變映射模型,而不需要修改java實體類代碼.?
    ? ? 在hbm定義文件中,如果我們不指定name屬性,而是指定entity-name屬性,則我們可以將entity映射為Map, 而不是一個java實體類.
    ? <class
    ??? entity-name="test.DynamicEntity"
    ??? table="DYNAMIC_ENTITY"
    ? >...</class>
    ? 此外, 也可以選擇將部分字段動態映射到Map
    ? <class ...>
    ??? <dynamic-component name="dynamicAttributes">
    ????? <property name="foo" column="FOO"/>
    ????? <property name="bar" column="BAR"/>
    ??? </dynamic-component>
    ? </class>
    在HQL語句中可以直接使用o.dynamicAttributes.foo來訪問foo屬性,所有操作與普通屬性相同。
    ? 為了實現hiberante映射模型的動態更新,我們首先需要實現sessionFactory的動態更新。目前hibernate的實現只允許從hbm文件重建sessionFactory, 即新建一個sessionFactory替換原有的sessionFactory, 在使用spring的情況下,這需要對org.springframework.orm.hibernate3.LocalSessionFactoryBean進行小小的hack。
    ? 為了將動態屬性和普通屬性同樣對待,要求在操作實體對象屬性的時候需要能夠自動處理nested property, 即需要如下類似的方法:entityDao.getProperty(entity,"dynamicAttributes.foo"), entityDao.setProperty(entity,"dynamicAttributes.foo", attrValue).
    ? 為了使得應用程序自動處理新增屬性,要求程序是meta驅動的:當實體對象增加了一個屬性時,只需要修改meta文件,即可完成對于該屬性的增刪改查匯總等普通應用需求。

    Feedback

    # re: Hibernate動態化  回復  更多評論   

    2006-09-16 22:24 by 曹曉鋼
    嘿嘿,和我想的事情素一模一樣的亞!

    # re: Hibernate動態化  回復  更多評論   

    2006-09-18 00:30 by canonical
    嗯,我們對hiberante作了一些擴展,包括支持公式字段,附件上傳字段等

    # re: Hibernate動態化  回復  更多評論   

    2006-10-11 15:05 by jiaoly
    有個問題:使用 Map,能夠實現 lazy load 嗎

    # re: Hibernate動態化  回復  更多評論   

    2007-11-09 15:17 by aiai
    能再詳細點該有多好啊 唉~

    # re: Hibernate動態化  回復  更多評論   

    2008-03-17 20:17 by yeti20011
    <hibernate-mapping>
    <class name="hib.TtItem" table="TT_ITEM" schema="SCOTT">
    <id name="id" type="java.lang.Long">
    <column name="ID" precision="22" />
    <generator class="increment" />
    </id>
    <property name="name" type="java.lang.String">
    <column name="NAME" length="80" />
    </property>
    <joined-subclass entity-name="Ttbook">
    <key column="aid" />
    <property name="ttt" type="java.lang.String"></property>
    </joined-subclass>
    </class>
    </hibernate-mapping>
    有沒有試驗過這樣的配置文件

    # re: Hibernate動態化  回復  更多評論   

    2008-03-17 20:17 by yeti20011
    我的email:yeti20022@hotmail.com

    # re: Hibernate動態化  回復  更多評論   

    2010-08-02 16:11 by 技術學習
    能詳細點嗎,能舉個列子在spring+hibernate 中動態化具體實現過程

    # re: Hibernate動態化[未登錄]  回復  更多評論   

    2010-08-19 14:45 by Java
    能舉個例子在spring+hibernate中動態化的列子嗎?
    主站蜘蛛池模板: 国产成人精品曰本亚洲79ren| 台湾一级毛片永久免费| 国产成人aaa在线视频免费观看| 亚洲欧洲另类春色校园网站| 免费阿v网站在线观看g| 亚洲毛片免费视频| 亚洲高清在线视频| 久久亚洲精品国产精品| 亚洲综合小说另类图片动图| 最近最新的免费中文字幕| 久久综合久久综合亚洲| 日本无卡码免费一区二区三区| 亚洲欧美成人一区二区三区| 无码少妇精品一区二区免费动态| 国产亚洲无线码一区二区 | 亚洲AV无码码潮喷在线观看 | 亚洲avav天堂av在线网毛片| 免费A级毛片无码A| j8又粗又长又硬又爽免费视频| 自拍偷自拍亚洲精品情侣| 人妻丰满熟妇无码区免费| 亚洲AⅤ无码一区二区三区在线| 免费一级特黄特色大片| 久久精品国产精品亚洲蜜月| 最近免费2019中文字幕大全| 国产亚洲精品a在线观看app| 一区二区三区福利视频免费观看| 亚洲自国产拍揄拍| 亚洲精品无码专区2| 特级精品毛片免费观看| 456亚洲人成在线播放网站| 免费一看一级毛片人| 久久精品无码精品免费专区| 亚洲五月丁香综合视频| 亚洲国产一区二区视频网站| 久久精品无码专区免费青青| 亚洲熟妇丰满xxxxx| 国产成人亚洲精品青草天美| 男人的好看免费观看在线视频| 人妖系列免费网站观看| 亚洲国产理论片在线播放|