• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用OpenJPA持久存儲服務數據對象:放寬類型

    發布: 2008-6-26 17:20 | 作者: 不詳 | 來源: 測試時代編輯整理 | 查看: 169次 | 進入軟件測試論壇討論

    領測軟件測試網

      首要特性是斷開或分離操作模式――在這種模式中,用戶應用程序連接到數據庫并從中取回數據后立刻釋放連接。數據作為相關的記錄集被應用程序查看――POJO圖形或DataGraph――看您喜好哪種術語了。數據可以在遠程進程中修改,而不需要對數據庫的原始數據建立活動連接。稍后,當重新建立數據庫連接時,這些修改可以合并到持久性數據中。這種斷開操作模式對可伸縮性非常關鍵,例如10000個活動用戶可以同時操作包含十個數據庫連接的連接池。這種應用程序使用模式同樣節省了大量的金錢,因為隨著連接數量的增加,數據庫安裝開銷將呈指數級增長。JAP支持這種斷開操作模式,當持久性存儲上下文關閉或事務提交后,取回的POJO實例將斷開連接,并且可以遠程修改斷開的對象圖并稍后合并到不同的持久性存儲上下文中。另一方面,SDO定義了ChangeSummary概念,用于跟蹤斷開的DataGraph中的改動。因此,JPA實現自然可以使用ChangeSummary內容將改動有效地并入到數據庫中。

      JAP和SDO自然結合的另一點是:它們都使用取回的數據作為連接對象圖。JPA目前還沒有充分開發定義斷開數據圖的潛力,但是OpenJPA或Kodo支持一種名為FetchPlan的強大擴展――來自于JDO規范的貢獻,該規范良好定義了這一概念,即指定從數據庫取回對象閉包的哪一部分。這種控制非常重要,因為完整的實例閉包通常就是整個數據庫。另一方面,SDO DataGraph定義了一種經過配置的閉包,即所謂的根DataObject。

    使用JPA持久性存儲SDO的關鍵挑戰是什么?
      需要解決的關鍵分歧是類型系統。JPA是針對嚴格類型的POJO設計的。JPA實現管理的對象實例是由Java類靜態定義的,并由Java編譯器進行編譯。JPA(及其前身JDO)的美妙之處在于:這些實現能夠在不產生干擾的情況下截取對持久性實例的改變(狀態和/或關系)。對象仍然保持POJO特性,但JPA運行時可以知道用戶應用程序何時會對持久性對象調用setter方法以修改其狀態,或何時調用要求從數據庫取回更多日期(通常稱為Lazy Loading)的getter方法。實際的實現會根據截取改動的方式而有所變化――例如――OpenJPA或Kodo取決于增強――該過程將修改編譯后的持久性Java類的字節碼,而其他實現可能會使用不同的機制,例如代理原始實體。無論哪種情況,都需要對實現作出較大的改動,以脫離其基本假設。例如,存在編譯后表示持久性數據的Java類。

      另一方面,SDO傾向于松散類型的對象。SDO可以使用名稱和年齡表示一個Person對象,而不需要定義一個Person.java類。Person的定義可存在于一個XML模式文檔中,或者甚至可以通過編程的方式創建。

      那么如何使用JPA存儲一個Person DataObject而不用編寫Person.java類呢?理論上講,JPA怎么能采用不是強類型的數據表示呢?

      類型轉換系統僅僅是開始。還有很多問題要解決:

    如何定義實例的身份?
    如何定義到數據庫模式的映射?
    如何使用Java表示SDO類型之間的關系?
    如何將斷開的DataGraph的改動轉換為Java實例的更新?
    如何放寬JPA限制以使用松散類型數據?
      為了不被答案不是特別明顯的問題混淆,我決定逐步執行一些步驟。因此我嘗試解決幾個簡單場景或用例。

    用例:通過JPA API將SDO Types/DataObjetcs轉化為持久性數據

    使用OpenJPA持久存儲服務數據對象:放寬類型 圖-2

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    42/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>