[发明专利]对象查询方法、装置、计算机设备和存储介质有效
申请号: | 201811330726.6 | 申请日: | 2018-11-09 |
公开(公告)号: | CN109669951B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 郑政芳 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/25 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 方高明 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 查询 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种对象查询方法、装置、计算机设备和存储介质。所述方法包括:获取原始OQL语句,确定原始OQL语句中的对象信息;将原始OQL语句中的对象信息与领域模型的对象信息建立映射关系;根据映射关系和分库路由配置,将原始OQL语句转换为各数据库查询的SQL语句,该分库路由配置为查询领域模型的对象位置的配置。采用本方法能够实现同时在多个数据库中查询对象。
技术领域
本申请涉及数据库操作领域,特别是涉及一种对象查询方法、装置、计算机设备和存储介质。
背景技术
Object Query Language(面向对象的查询语言,简称OQL),是将SQL(StructuredQuery Language,结构化查询语言)编程和面向对象的编程范例结合在一起的一种标准化语言。OQL作为面向对象数据库管理系统的一个有机组成部分,其查询的目标是数据库中的对象。
对于一些企业来说,系统数据会按照应用分类,分布存储在多个数据库中,往往需要同时查询多个数据库中的对象,但目前的OQL只能查询单个数据库中的对象,无法满足企业的需求。
发明内容
基于此,有必要针对目前的OQL只能查询单个数据库中的对象的问题,提供一种能够同时查询多个数据库的对象查询方法、装置、计算机设备和存储介质。
一种对象查询方法,所述方法包括:
获取原始OQL语句,确定所述原始OQL语句中的对象信息;
将所述原始OQL语句中的对象信息与领域模型的对象信息建立映射关系;
根据所述映射关系和分库路由配置,将所述原始OQL语句转换为各数据库查询的SQL语句,所述分库路由配置为查询所述领域模型的对象位置的配置。
在其中一个实施例中,所述确定所述原始OQL语句中的对象信息的步骤包括:
分析所述原始OQL语句;
确定所述原始OQL语句中的对象和对应的属性。
在其中一个实施例中,所述将所述原始OQL语句中的对象信息与领域模型的对象信息建立映射关系的步骤包括:
将所述原始OQL语句中的根对象与领域模型中的聚合根实体建立映射关系;
将所述原始OQL语句中根对象的属性与所述领域模型中聚合根实体的属性建立映射关系;
将所述原始OQL语句中的子对象与所述领域模型中的聚合根实体引用的实体对象建立映射关系;
将所述原始OQL语句中子对象的属性与所述领域模型中的聚合根实体引用的实体对象的属性建立映射关系。
在一个实施例中,所述将所述原始OQL语句中的子对象与所述领域模型中的聚合根实体引用的实体对象建立映射关系的步骤包括:
将所述原始OQL语句中的不同子对象与所述领域模型中的聚合根实体引用的不同类型的实体对象分别建立对应的映射关系;
将所述原始OQL语句中根对象对子对象的引用和所述领域模型中的聚合根实体对实体对象的引用建立映射关系。
在一个实施例中,所述将所述原始OQL语句中根对象对子对象的引用和所述领域模型中的聚合根实体对实体对象的引用建立映射关系的步骤包括:
确定所述原始OQL语句中的主键和外键;
将所述原始OQL语句中的主键和外键与所述领域模型中的主键和外键建立映射关系。
在一个实施例中,所述根据所述映射关系和分库路由配置,将所述原始OQL语句转换为各数据库查询的SQL语句,所述分库路由配置为查询所述领域模型的对象位置的配置的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811330726.6/2.html,转载请声明来源钻瓜专利网。