新四季網

一種領域對象模型的持久化裝置和方法

2023-05-16 01:36:51

一種領域對象模型的持久化裝置和方法
【專利摘要】本發明的實施例提供一種領域對象模型的持久化裝置和方法,涉及計算機領域。提供一種對領域對象模型擴展屬性進行持久化的方式,簡化了對領域對象模型擴展屬性進行持久化時的操作,提高了可行性與實用性。其方法為:通過獲取領域對象以及領域對象對應的類定義與擴展模型定義,根據擴展模型定義與類定義中的擴展屬性容器確定領域對象中各擴展屬性對應的列名與列值,生成擴展列信息;進一步根據目標資料庫類型,確定入庫策略,並結合該入庫策略將擴展列信息發送至目標資料庫進行存儲。本發明的實施例用於對領域對象模型的擴展屬性進行持久化。
【專利說明】一種領域對象模型的持久化裝置和方法
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種領域對象模型的持久化裝置和方法。
【背景技術】
[0002]數據持久化,即把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁碟),主要應用是將內存中的數據存儲在資料庫或磁碟文件中、XML數據文件中等等;領域對象模型,即領域對象的模型,可以被看作是一個系統的概念模型,用於定義系統中的各個實體及其之間的關係,記錄了一個系統中的關鍵概念和詞彙表,並定義了它們各自的屬性。
[0003]目前,領域軟體平臺往往需要為相似領域的不同業務軟體系統提供通用的領域能力支撐,以人員管理平臺作為領域軟體平臺為例,可同時用於支撐圖書館職工管理系統、學校學生管理系統等不同的業務軟體系統。同時,隨著資料庫的應用越來越廣泛,各種數據持久化框架應運而生,通過將內存中的領域對象模型轉換為存儲模型,為領域軟體平臺的開發帶來了極大的便利;
[0004]在現有技術應用中,領域軟體平臺除了為業務軟體系統提供通用領域對象模型以夕卜,同時需要提供領域對象模型擴展能力,以滿足各不同業務軟體系統的領域對象模型差異化需求。然而,目前主流的數據持久化框架只能針對通用領域對象模型進行持久化,而對於領域對象模型擴展屬性持久化,則需要強迫領域軟體平臺自身進行調整來適應不同業務軟體系統的差異化要求,造成平臺對業務軟體系統的反向依賴,且在一個領域軟體平臺支撐多個業務軟體系統時,造成擴展屬性的衝突和泛濫。這樣,導致業務軟體系統對領域對象模型的擴展屬性進行持久化時,操作複雜且可行性、實用性低。

【發明內容】

[0005]本發明的實施例提供一種領域對象模型的持久化裝置和方法,使得業務軟體系統在對領域對象模型進行擴展時,與領域軟體平臺相對隔離,避免對平臺進行調整,且根據資料庫的類型確定相應的入庫策略實現統一的封裝存儲,以簡化對領域對象模型的擴展屬性進行持久化時的操作,提高可行性與實用性。
[0006]為達到上述目的,本發明的實施例採用如下技術方案:
[0007]第一方面,提供一種領域對象模型的持久化裝置,所述裝置包括:
[0008]獲取單元,用於獲取領域對象、所述領域對象對應的類定義與擴展模型定義;
[0009]所述領域對象包括至少一個擴展屬性;所述類定義包括擴展屬性容器,所述擴展屬性容器用於承載各所述擴展屬性的屬性名與屬性值;擴展模型定義用於指示各所述擴展屬性的屬性名與資料庫表中列名的對應關係;
[0010]處理單元,用於根據所述獲取單元獲取的所述擴展模型定義與所述擴展屬性容器,確定各所述擴展屬性對應的列名與列值,並生成擴展列信息,所述擴展列信息包括至少一組與所述擴展屬性對應的所述列名與列值;[0011 ] 入庫單元,用於根據目標資料庫類型確定入庫策略,並結合所述入庫策略,將所述處理單元獲取的所述擴展列信息發送至所述目標資料庫進行存儲。
[0012]結合第一方面,在第一種可能的實現方式中,所述領域對象還包括至少一個基礎屬性;所述類定義包括基礎屬性容器,所述基礎屬性容器用於承載所述基礎屬性的屬性名與屬性值;
[0013]所述獲取單元還用於獲取所述領域對象對應的基礎模型定義;所述基礎模型定義用於指示各所述基礎屬性的屬性名與資料庫表中列名的對應關係;
[0014]所述處理單元還用於根據所述獲取單元獲取的所述基礎模型定義與所述基礎屬性容器,確定各所述基礎屬性對應的列名與列值,並生成基礎列信息,所述基礎列信息包括至少一組與所述基礎屬性對應的所述列名與列值;
[0015]所述入庫單元還用於結合所述入庫策略,將所述處理單元獲取的所述基礎列信息發送至所述目標資料庫進行存儲。
[0016]結合第一方面,在第二種可能的實現方式中,所述處理單元具體用於:
[0017]根據所述擴展模型定義指示的各所述擴展屬性的屬性名與所述資料庫表中列名的對應關係,確定各所述擴展屬性對應的列名;
[0018]通過所述擴展屬性容器獲取各所述列名對應的列值,所述列值為通過所述擴展屬性容器從所述領域對象中獲取的與所述屬性名對應的所述屬性值。
[0019]結合第一方面或第一方面的第一種可能的實現方式,在第三種可能的實現方式中,所述入庫單元具體用於:
[0020]獲取所述目標資料庫類型,並根據所述目標資料庫類型確定所述入庫策略;所述入庫策略包括:
[0021]使用與所述目標資料庫類型對應的預設構造算法,根據所述擴展列信息或所述基礎列信息生成入庫消息,所述入庫消息為包括至少一組相互對應的列名與列值的資料庫語句或指令;
[0022]確定所述目標資料庫類型對應的分類,使用所述分類對應的預設資料庫訪問接口,將生成的所述入庫信息提交至所述目標資料庫進行存儲。
[0023]結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,所述目標資料庫類型對應的分類包括:關係型、非關係型;
[0024]所述入庫單元使用所述分類對應的預設資料庫訪問接口包括:當所述分類為關係型時,使用預設關係型資料庫訪問接口 ;或,當所述分類為非關係型時,使用預設非關係型資料庫訪問接口。
[0025]第二方面,提供一種領域對象模型的持久化方法,所述方法包括:
[0026]獲取領域對象、所述領域對象對應的類定義與擴展模型定義;
[0027]所述領域對象包括至少一個擴展屬性;所述類定義包括擴展屬性容器,所述擴展屬性容器用於承載各所述擴展屬性的屬性名與屬性值;擴展模型定義用於指示各所述擴展屬性的屬性名與資料庫表中列名的對應關係;
[0028]根據所述擴展模型定義與所述擴展屬性容器,確定各所述擴展屬性對應的列名與列值,並生成擴展列信息,所述擴展列信息包括至少一組與所述擴展屬性對應的所述列名與列值;[0029]根據目標資料庫類型確定入庫策略,並結合所述入庫策略,將所述擴展列信息發送至所述目標資料庫進行存儲。
[0030]結合第二方面,在第一種可能的實現方式中,所述領域對象還包括至少一個基礎屬性;所述類定義包括基礎屬性容器,所述基礎屬性容器用於承載所述基礎屬性的屬性名與屬性值,所述方法還包括:
[0031]獲取所述領域對象對應的基礎模型定義;所述基礎模型定義用於指示各所述基礎屬性的屬性名與資料庫表中列名的對應關係;
[0032]根據所述基礎模型定義與所述基礎屬性容器,確定各所述基礎屬性對應的列名與列值,並生成基礎列信息,所述基礎列信息,包括至少一組與所述基礎屬性對應的所述列名與列值;
[0033]結合所述入庫策略,將所述基礎列信息發送至所述目標資料庫進行存儲。
[0034]結合第二方面,在第二種可能的實現方式中,所述確定各所述擴展屬性對應的列名與列值,並生成擴展列信息包括:
[0035]根據所述擴展模型定義指示的各所述擴展屬性的屬性名與所述資料庫表中列名的對應關係,確定各所述擴展屬性對應的列名;
[0036]通過所述擴展屬性容器獲取各所述列名對應的列值,所述列值為通過所述擴展屬性容器從所述領域對象中獲取的與所述屬性名對應的所述屬性值。
[0037]結合第二方面或第二方面的第一種可能的實現方式,在第三種可能的實現方式中,所述入庫策略包括:
[0038]使用與所述目標資料庫類型對應的預設構造算法,根據所述擴展列信息或所述基礎列信息生成入庫消息,所述入庫消息為包括至少一組相互對應的列名與列值的資料庫語句或指令;
[0039]確定所述目標資料庫類型對應的分類,使用所述分類對應的預設資料庫訪問接口,將生成的所述入庫信息提交至所述目標資料庫進行存儲。
[0040]結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,所述目標資料庫類型對應的分類包括:關係型、非關係型;
[0041]所述使用所述分類對應的預設資料庫訪問接口包括:當所述分類為關係型時,使用預設關係型資料庫訪問接口 ;或,當所述分類為非關係型時,使用預設非關係型資料庫訪問接口。
[0042]可見,本發明的實施例提供一種領域對象模型的持久化裝置和方法,通過獲取領域對象以及領域對象對應的類定義與擴展模型定義,根據擴展模型定義與類定義中的擴展屬性容器確定領域對象中各擴展屬性對應的列名與列值,生成擴展列信息,進一步根據目標資料庫類型,確定構造策略,並結合該構造策略將擴展列信息發送至目標資料庫進行存儲;這樣,避免了在對領域對象模型進行擴展時對領域軟體平臺進行調整,且根據資料庫的類型確定相應的構造策略實現統一的封裝存儲,簡化了對領域對象模型的擴展屬性進行持久化時的操作,提高了可行性與實用性。
【專利附圖】

【附圖說明】
[0043]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0044]圖1為本發明實施例提供的一種領域對象模型的持久化裝置的結構示意圖;
[0045]圖2為本發明實施例提供的一種領域對象模型的持久化方法的流程示意圖;
[0046]圖3為本發明實施例提供的一種領域對象模型的持久化裝置的結構示意圖。
【具體實施方式】
[0047]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0048]本發明的實施例提供一種領域對象模型的持久化裝置00,如圖1所示,該裝置00包括:
[0049]獲取單元001、處理單元002、入庫單元003。
[0050]具體的,該獲取單元001,用於獲取領域對象、領域對象對應的類定義與擴展模型定義;該領域對象包括至少一個擴展屬性,且對應的類定義包括擴展屬性容器。
[0051]可選的,該獲取單元001獲取的領域對象還可以包括至少一個基礎屬性,且該領域對象對應的類定義還可以包括基礎屬性容器;該獲取單元001還可以用於獲取基礎模型定義。
[0052]示例性的,獲取單元001可以通過對象接口從業務軟體系統獲取領域對象;該領域對象可以為業務軟體系統自身存儲的,也可以為業務軟體系統通過交互接口從客戶系統接收外部輸入獲取的,此處不做限定;該獲取單元001獲取的領域對象可以包括一個或多個基礎屬性,還可以包括至少一個擴展屬性。
[0053]進一步的,以學校教務管理軟體系統提供的領域對象為例,領域對象可以包括基礎屬性如:學號(userID)、姓名(UserName)、年齡(UserAge)等,以及其各自對應的屬性值:學號(userID)為「10001」、姓名(userName)為「Joyh」、年齡(userAge)為「25」;還可以包括擴展屬性如:性別(userSex)、出生日期(userDate)等,以及其各自對應的屬性值:性別(userSex)為「男」、出生日期(userDate)為 「1985 年 I 月 I 日」。
[0054]示例性的,獲取單元001獲取的類定義可以包括一個或多個基礎屬性容器,該基礎屬性容器用於承載上述領域對象各基礎屬性的屬性名與屬性值,還可以包括擴展屬性容器,該擴展屬性容器用於承載上述領域對象各擴展屬性的屬性名與屬性值;且獲取單元001可以通過自身的類管理器從領域軟體平臺加載與領域對象相對應的上述類定義;該類定義可以為領域軟體平臺提供的,且對於不同類型的領域對象,存在不同的類定義與之相對應。
[0055]值得一提的,上述基礎屬性容器為上述類定義中對領域對象中一個或多個既定基礎屬性的描述,可以為指定的一個或多個變量名、內存空間;上述擴展屬性容器為類定義中對未定擴展屬性預留的描述,可以為預設的接口。且上述基礎屬性容器與擴展屬性容器的具體的實現方式此處不做限定。[0056]進一步的,以與上述學校教務管理軟體系統提供的領域對象相對於的類定義為
例,示意如下:
[0057]
【權利要求】
1.一種領域對象模型的持久化裝置,其特徵在於,所述裝置包括: 獲取單元,用於獲取領域對象、所述領域對象對應的類定義與擴展模型定義; 所述領域對象包括至少一個擴展屬性;所述類定義包括擴展屬性容器,所述擴展屬性容器用於承載各所述擴展屬性的屬性名與屬性值;擴展模型定義用於指示各所述擴展屬性的屬性名與資料庫表中列名的對應關係; 處理單元,用於根據所述獲取單元獲取的所述擴展模型定義與所述擴展屬性容器,確定各所述擴展屬性對應的列 名與列值,並生成擴展列信息,所述擴展列信息包括至少一組與所述擴展屬性對應的所述列名與列值; 入庫單元,用於根據目標資料庫類型確定入庫策略,並結合所述入庫策略,將所述處理單元獲取的所述擴展列信息發送至所述目標資料庫進行存儲。
2.根據權利要求1所述的裝置,其特徵在於,所述領域對象還包括至少一個基礎屬性;所述類定義包括基礎屬性容器,所述基礎屬性容器用於承載所述基礎屬性的屬性名與屬性值; 所述獲取單元還用於獲取所述領域對象對應的基礎模型定義;所述基礎模型定義用於指示各所述基礎屬性的屬性名與資料庫表中列名的對應關係; 所述處理單元還用於根據所述獲取單元獲取的所述基礎模型定義與所述基礎屬性容器,確定各所述基礎屬性對應的列名與列值,並生成基礎列信息,所述基礎列信息包括至少一組與所述基礎屬性對應的所述列名與列值; 所述入庫單元還用於結合所述入庫策略,將所述處理單元獲取的所述基礎列信息發送至所述目標資料庫進行存儲。
3.根據權利要求1所述的裝置,其特徵在於,所述處理單元具體用於: 根據所述擴展模型定義指示的各所述擴展屬性的屬性名與所述資料庫表中列名的對應關係,確定各所述擴展屬性對應的列名; 通過所述擴展屬性容器獲取各所述列名對應的列值,所述列值為通過所述擴展屬性容器從所述領域對象中獲取的與所述屬性名對應的所述屬性值。
4.根據權利要求1或2所述的裝置,其特徵在於,所述入庫單元具體用於: 獲取所述目標資料庫類型,並根據所述目標資料庫類型確定所述入庫策略;所述入庫策略包括: 使用與所述目標資料庫類型對應的預設構造算法,根據所述擴展列信息或所述基礎列信息生成入庫消息,所述入庫消息為包括至少一組相互對應的列名與列值的資料庫語句或指令; 確定所述目標資料庫類型對應的分類,使用所述分類對應的預設資料庫訪問接口,將生成的所述入庫信息提交至所述目標資料庫進行存儲。
5.根據權利要求4所述的裝置,其特徵在於, 所述目標資料庫類型對應的分類包括:關係型、非關係型; 所述入庫單元使用所述分類對應的預設資料庫訪問接口包括:當所述分類為關係型時,使用預設關係型資料庫訪問接口 ;或,當所述分類為非關係型時,使用預設非關係型資料庫訪問接口。
6.一種領域對象模型的持久化方法,其特徵在於,所述方法包括:獲取領域對象、所述領域對象對應的類定義與擴展模型定義; 所述領域對象包括至少一個擴展屬性;所述類定義包括擴展屬性容器,所述擴展屬性容器用於承載各所述擴展屬性的屬性名與屬性值;擴展模型定義用於指示各所述擴展屬性的屬性名與資料庫表中列名的對應關係; 根據所述擴展模型定義與所述擴展屬性容器,確定各所述擴展屬性對應的列名與列值,並生成擴展列信息,所述擴展列信息包括至少一組與所述擴展屬性對應的所述列名與列值; 根據目標資料庫類型確定入庫策略,並結合所述入庫策略,將所述擴展列信息發送至所述目標資料庫進行存儲。
7.根據權利要求6所述的方法,其特徵在於,所述領域對象還包括至少一個基礎屬性;所述類定義包括基礎屬性容器,所述基礎屬性容器用於承載所述基礎屬性的屬性名與屬性值,所述方法還包括: 獲取所述領域對象對應的基礎模型定義;所述基礎模型定義用於指示各所述基礎屬性的屬性名與資料庫表中列名的對應關係; 根據所述基礎模型定義與所述基礎屬性容器,確定各所述基礎屬性對應的列名與列值,並生成基礎列信息,所述基礎列信息,包括至少一組與所述基礎屬性對應的所述列名與列值; 結合所述入庫策略 ,將所述基礎列信息發送至所述目標資料庫進行存儲。
8.根據權利要求6所述的方法,其特徵在於,所述確定各所述擴展屬性對應的列名與列值,並生成擴展列信息包括: 根據所述擴展模型定義指示的各所述擴展屬性的屬性名與所述資料庫表中列名的對應關係,確定各所述擴展屬性對應的列名; 通過所述擴展屬性容器獲取各所述列名對應的列值,所述列值為通過所述擴展屬性容器從所述領域對象中獲取的與所述屬性名對應的所述屬性值。
9.根據權利要求6或7所述的方法,其特徵在於,所述入庫策略包括: 使用與所述目標資料庫類型對應的預設構造算法,根據所述擴展列信息或所述基礎列信息生成入庫消息,所述入庫消息為包括至少一組相互對應的列名與列值的資料庫語句或指令; 確定所述目標資料庫類型對應的分類,使用所述分類對應的預設資料庫訪問接口,將生成的所述入庫信息提交至所述目標資料庫進行存儲。
10.根據權利要求9所述的方法,其特徵在於, 所述目標資料庫類型對應的分類包括:關係型、非關係型; 所述使用所述分類對應的預設資料庫訪問接口包括:當所述分類為關係型時,使用預設關係型資料庫訪問接口 ;或,當所述分類為非關係型時,使用預設非關係型資料庫訪問接□。
【文檔編號】G06F9/44GK103955370SQ201410175905
【公開日】2014年7月30日 申請日期:2014年4月28日 優先權日:2014年4月28日
【發明者】尹晨輝 申請人:華為軟體技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀