1.首先需要考虑的是<references></references>元素,这里可以类比java文件的import或者c#中的using,这里其实配置的就是需要依赖的其他xml文件(这个可能是一开始想不清楚的,边写边确定需要依赖哪些xml,写多了就有经验了。)
2.接下来就是配置<component></componet>元素了。这个标签就是领域元数据的主体了。
*)如果要用到枚举,直接这这里定义,比如:
<enum name="Gender" title="性别">
<item name="Man" title="男" value="1">
<item name="Woman" title="女" value="2">
<item name="Unknown" title="未知" value="3">
</enum>
*)一个领域元数据中可能用到多个类,就像你再写代码的时候,一个类可能引用到很多其他的类一样。它们共同组合成领域原属据的模型。
对于<realization></realization>这种节点,意思是新建的领域元数据要实现这些接口。(也许你会疑问,我只是配置了一些属性,该使用继承啊,为什么用实现接口呢?那是因为java中的取属性和赋值给属性是以get/set方法来体现的,所以,在这里就变成了实现接口)
对于<generalization></generalization>这种节点,意思是新建的领域元数据要继承这些基类,这样很多属性就可以直接使用父类中的属性,而不用自己再重新定义了。
对于<association></association>这种节点,意思是新建的领域元数据下有很多个类,但这些类是怎样的关联关系,又是怎样管理起来的呢,就是在这里决定的。比如:
<association type="composition" roleB="user" typeB="user" typeB="User" roleA="orgs" typeA="UserOrg" roleAMulti="0..n"/>
也许你会疑问,这里仅仅是定义了两个类之间有关系,并且说明了这两个类之间数量的对应关系,但并没有说明它们是如何关联的。这个问题,可以在定义的每个class中找到类似这种:
<attribute name="user" columnName="user_id" title="操作员" type="User" />
还在User的类的code属性中找到了这个字段isUnique="true",说明这个字段就是用来关联component下的不同class的字段。
备注:
网友评论