[发明专利]一种领域对象模型的持久化装置和方法有效
申请号: | 201410175905.2 | 申请日: | 2014-04-28 |
公开(公告)号: | CN103955370B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 尹晨辉 | 申请(专利权)人: | 华为软件技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 210012 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 领域 对象 模型 持久 化装 方法 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种领域对象模型的持久化装置和方法。
背景技术
数据持久化,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),主要应用是将内存中的数据存储在数据库或磁盘文件中、XML数据文件中等等;领域对象模型,即领域对象的模型,可以被看作是一个系统的概念模型,用于定义系统中的各个实体及其之间的关系,记录了一个系统中的关键概念和词汇表,并定义了它们各自的属性。
目前,领域软件平台往往需要为相似领域的不同业务软件系统提供通用的领域能力支撑,以人员管理平台作为领域软件平台为例,可同时用于支撑图书馆职工管理系统、学校学生管理系统等不同的业务软件系统。同时,随着数据库的应用越来越广泛,各种数据持久化框架应运而生,通过将内存中的领域对象模型转换为存储模型,为领域软件平台的开发带来了极大的便利;
在现有技术应用中,领域软件平台除了为业务软件系统提供通用领域对象模型以外,同时需要提供领域对象模型扩展能力,以满足各不同业务软件系统的领域对象模型差异化需求。然而,目前主流的数据持久化框架只能针对通用领域对象模型进行持久化,而对于领域对象模型扩展属性持久化,则需要强迫领域软件平台自身进行调整来适应不同业务软件系统的差异化要求,造成平台对业务软件系统的反向依赖,且在一个领域软件平台支撑多个业务软件系统时,造成扩展属性的冲突和泛滥。这样,导致业务软件系统对领域对象模型的扩展属性进行持久化时,操作复杂且可行性、实用性低。
发明内容
本发明的实施例提供一种领域对象模型的持久化装置和方法,使得业务软件系统在对领域对象模型进行扩展时,与领域软件平台相对隔离,避免对平台进行调整,且根据数据库的类型确定相应的入库策略实现统一的封装存储,以简化对领域对象模型的扩展属性进行持久化时的操作,提高可行性与实用性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种领域对象模型的持久化装置,所述装置包括:
获取单元,用于获取领域对象、所述领域对象对应的类定义与扩展模型定义;
所述领域对象包括至少一个扩展属性;所述类定义包括扩展属性容器,所述扩展属性容器用于承载各所述扩展属性的属性名与属性值;扩展模型定义用于指示各所述扩展属性的属性名与数据库表中列名的对应关系;
处理单元,用于根据所述获取单元获取的所述扩展模型定义与所述扩展属性容器,确定各所述扩展属性对应的列名与列值,并生成扩展列信息,所述扩展列信息包括至少一组与所述扩展属性对应的所述列名与列值;
入库单元,用于根据目标数据库类型确定入库策略,并结合所述入库策略,将所述处理单元获取的所述扩展列信息发送至所述目标数据库进行存储。
结合第一方面,在第一种可能的实现方式中,所述领域对象还包括至少一个基础属性;所述类定义包括基础属性容器,所述基础属性容器用于承载所述基础属性的属性名与属性值;
所述获取单元还用于获取所述领域对象对应的基础模型定义;所述基础模型定义用于指示各所述基础属性的属性名与数据库表中列名的对应关系;
所述处理单元还用于根据所述获取单元获取的所述基础模型定义与所述基础属性容器,确定各所述基础属性对应的列名与列值,并生成基础列信息,所述基础列信息包括至少一组与所述基础属性对应的所述列名与列值;
所述入库单元还用于结合所述入库策略,将所述处理单元获取的所述基础列信息发送至所述目标数据库进行存储。
结合第一方面,在第二种可能的实现方式中,所述处理单元具体用于:
根据所述扩展模型定义指示的各所述扩展属性的属性名与所述数据库表中列名的对应关系,确定各所述扩展属性对应的列名;
通过所述扩展属性容器获取各所述列名对应的列值,所述列值为通过所述扩展属性容器从所述领域对象中获取的与所述属性名对应的所述属性值。
结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述入库单元具体用于:
获取所述目标数据库类型,并根据所述目标数据库类型确定所述入库策略;所述入库策略包括:
使用与所述目标数据库类型对应的预设构造算法,根据所述扩展列信息或所述基础列信息生成入库消息,所述入库消息为包括至少一组相互对应的列名与列值的数据库语句或指令;
确定所述目标数据库类型对应的分类,使用所述分类对应的预设数据库访问接口,将生成的所述入库信息提交至所述目标数据库进行存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为软件技术有限公司,未经华为软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410175905.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:污水培养微藻光生物反应器的优化设计方法
- 下一篇:一种马桶盖板快装装置