代码生成器技术乱弹二,一对多关系的分析与实现

        类似多对多关系,其实一对多关系也是两个域对象之间的关系。一个域对象的Id记录在其他域对象中代表此域对象的所有信息。

        但是与多对多关系必须依赖双域动词不同,一对多关系可以使用两个单域动词来完成需要的功能。

        可以做如下分析。

   在我实现的动词算子式代码生成器中所有域对象都存在三个特殊字段:domainid,domainname,activefield即域对象的主键,域对象标准名字和域对象活跃字段(可以看作反置的软删除标志,如果此字段被命名为deleted或delete时,系统会自动使用软删除标志的语义)。一对多关系要解决的是如下两个问题:输入或查询字段时候变成下拉列表,在Grid字段里使用domainname代替数据库里实际保存的domainid值。

        解决这个问题有两种思路,使用联合查询或者使用两次查询。实际上在现有的动词算子式代码生成器的实现采用的是两次查询,把完整的动作拆成两部,采用单域动词实现。第一步是把主域对象查询出来,可以使用ListAll,ListActive,ListAllByPage或者是最新的主查询SearchByFieldsByPage。然后使用从域对象的ListActive单域动词将活跃的domainid翻译成domainname。下拉列表中的所有从域对象清单都是ListActive单域动词列出来的。

        希望上述文字解答了对代码生成器感兴趣的同学们的疑惑。如果您对动词算子式代码生成器感兴趣,请参考以下链接:

        https://gitee.com/jerryshensjf/InfinityJEEEU

        https://gitee.com/jerryshensjf/InfinitySimpleJEE

        https://gitee.com/jerryshensjf/PeaceWingSMEU

        https://gitee.com/jerryshensjf/InfinityGPGenerator

        https://gitee.com/jerryshensjf/PeaceWingSHCEU

转载于:https://my.oschina.net/jerryshensjf/blog/1821595

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值