元数据使用入门Word下载.docx
《元数据使用入门Word下载.docx》由会员分享,可在线阅读,更多相关《元数据使用入门Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
![元数据使用入门Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/23/2c594c39-30d6-43d2-bb26-7b5970954a7f/2c594c39-30d6-43d2-bb26-7b5970954a7f1.gif)
组件属于模块,一个模块可以包含多个组件。
对应数据库表md_component
组件是部署的基本单元,一个典型的组件会包含若干个有相互关系的实体(但只能有一个主实体),组件内还包括服务和操作,服务可以直接生成usm配置文件,操作可以直接生成upm配置文件,另外组件里还可以有业务接口,枚举类型等。
实体(IBusinessEntity)是指可以通过一系列连续性(continuity)和标识(identity ID)来定义的业务对象,NC原有的大部分VO基本上都算得上是实体。
实体属于特定的组件,一个组件可以包含多个实体,组件可以没有任何实体,(比如只有业务接口),但如果有实体,则必须设置一个主实体。
对应数据库表md_class
值对象(IPropertyType):
如果一个对象代表了领域的某种描述性特征,且没有概念性的标识,比如颜色,地址,但也不能一概而论,有些需要取决于具体的业务场景。
值对象同样定义在组件里,一个组件可以包含多个值对象。
值对象与实体的另一个差别:
值对象可以通过判断其所有的属性是否相等来判断值对象是否相等,而两个实体即使所有属性都相等,但主键不相等,也不能说两个实体相等。
从这个意义上可以说,值对象是无生命的,而实体是有生命的。
自定义实体(ICustomEntity):
表达拥有特定属性的一类实体,对应NC里的自定义档案,自定义实体是一种特殊的实体。
属性(IAttribute):
对应实体里的每个字段,对应数据库表md_property
业务操作(IBusinessOperation):
表达一个完整的外部服务或者内部服务(service)。
业务操作也定义在组件里。
对应数据库表md_busiOperation。
业务接口(IBizInterface):
供实体或者值对象实现的接口,接口本身定义了特定的访问方法。
备注:
在设计器上,业务接口只能增加属性,相应会生成get方法,比如增加一个name属性,会生成一个getName()方法,方法的返回值可以自由选择。
实际上,如果希望灵活运用业务接口,你可以摆脱设计器的限制,你在设计器上设计出一个业务接口,生成代码后,可以给业务接口增加任何方法,当然实现类也由你自己实现,此时只是通过元数据来管理你的业务接口而已。
二、NC模型设计器的环境介绍
1、安装模型设计插件
插件安装的方法跟普通插件安装的方法一样,检查插件是否安装成功的方法:
Help->
AboutEclipsePlatform->
PluginDetails,如果看到被红线圈住的插件就说明插件已经安装成功。
插件最新版本是.7b,以后还会更新。
访问http:
//uapserver03/ncmdp/ncmdp_site下载插件。
2、打开模型视图
(1)、插件安装成功之后,Windows->
OpenPerspective->
Other,选中下图红线部分
(2)、进入模型视图之后,可以选中工程中的某一个目录点右键新建模型文件,文件的后缀名是bmf,一个模型文件相当于一个元数据组件,是部署的基本单元。
(3)、然后可以在组件中创建实体、业务接口等等。
在模型视图中有业务组件工具箱和关联关系工具箱,可以通过拖拽的方式创建实体、业务接口、关联关系等等。
三、制作典型主子表元数据
1、创建主实体
(1)、给主实体添加属性
实体创建完之后,要给实体设置主属性,也就是主键。
在例子中,主键是id,在一般情况下主键的类型要设置成UFID,类型样式为SINGLE。
类型样式有四种:
SINGLE:
单一样式,大部分属性都选择这个样式。
REF:
引用样式,当属性引用别的实体的时候,设置为应用样式。
ARRAY、LIST:
当该属性是作为1-n关联或者1-n聚合关系的源属性时,设置成ARRAY、LIST样式。
一般情况下,类型样式是会自动设置的,比如:
当属性引用了其他的实体时,类型样式会自动变成REF,某属性被1-n关联关系设置成源属性时,该属性的类型样式会自动变成ARRAY。
但是把REF或者ARRAY变回SINGLE时要手动设置,比如,当去掉主实体和子实体的组合关系时,一定要把源属性的类型样式手动从ARRAY设回SINGLE。
(2)、设置实体参数。
要设置一些参数,就是在后面生成脚本时的表名和生成java源文件的VO类名
2、创建子实体
创建子实体的方法和创建子实体的步骤类似
设置实体参数时跟主实体有点不同,主要是访问器类型设置为NCVO,而且访问器参数没有包装类名那一项。
3、建立主实体和子实体之间关系
元数据中实体中有多种关系:
继承、依赖、1-1组合、1-n组合等等,一般在设计主-子表关系时,选择1-n组合关系。
在选中1-n组合关系时,必须要给该组合关系设置源属性,这个属性比较特殊,在进行元数据设计的时候,它是主实体的一个属性,但是在最后生成数据库表结构的时候它实际上是子表的一个字段,是子表对主表的外键(关于生成建库脚本后面还会介绍),该属性的访问策略要设置成BodyOfAggVOAccessor。
最后大家确认一下该属性字段名必须与主表主键名相同,否则保存会丢外键。
在把主实体中的属性设置成源属性之后,该属性的类型样式会自动变成“ARRAY”
4、发布模型
在发布模型之前:
(1)、把组件的主属性设置成主实体
(2)、保存
(3)、启动中间件
(4)、发布元数据,发布元数据有两种方式:
忽略版本和不忽略版本。
如果发布元数据时忽略版本,则完全以本地的模型文件,可能造成库中新版本的模型被覆盖,非特殊情况不推荐使用。
开发环境的发布只是为了开发人员测试需要,提交产品时只需要将bmf文件提交到相应模块的METADATA目录下,安装帐套时会自行发布到数据库中。
5、生成javaVO源文件
总共会生成三个源文件:
,,(类名是在给实体设置参数的时候设置的),第一个VO是聚合VO继承了,后两个VO都继承了SuperVO。
6、生成建库脚本
总共会生成两个表:
test、test_b(表名是在设置实体参数的时候设置的)和一个子表对主表的外键约束(外键对应组合关系的源属性)。
可以先生成建库脚本,然后自己手动去检查执行建库脚本。
也可以生成sql脚本之后直接执行。
建议直接执行,因为生成的sql脚本是sqlserver格式,如果自己去执行脚本的话,可能还要把脚本转化成其他库的脚本。
直接执行的话平台会在后台去把sql脚本转换成其他库的脚本,无需自己去转换。