fmjsjx / bson-model Goto Github PK
View Code? Open in Web Editor NEWAn ORM like object model framework for BSON/MongoDB.
License: MIT License
An ORM like object model framework for BSON/MongoDB.
License: MIT License
实现kotlin代码生成器,期望以此能够享受到kotlin语法带来的一些便捷性(如代码级别的null
检查等)
目标是在使用同样的YAML配置时,生成的kotlin版模型与使用java代码生成器生成的java模型完全兼容。
补充:生成的kotlin代码与java代码,应尽量保证其中的逻辑统一性。
在一个模型(model)中,当所有字段都是loadonly
或transient
字段时,在生成toBson()
,anyUpdated()
方法时会出现多余的代码。
当字段为object
类型时,部分删除也会变成整体删除
Java代码生成器,未对object
,map
,list
类型的transient
字段做特殊处理,这几类字段仍然绑定了父级节点。
在非loadonly
或transient
情况下支持object值类型
AbstractBsonModel.emitChanged()
未触发父节点的状态变更,导致二级以下节点的变更未能影响到根节点
模型类新增deepCopy()
方法,使快速深度拷贝数据得以实现。
代码生成器有部分语法问题,需修复
代码生成器生成数据模型字段应支持UUID类型:
STANDARD
及LEGACY
UUID
字段及std-list
字段如题,目前Java代码生成器生成的anyUpdate()
方法包括了虚拟字段,并且当不为required
时还会生成错误代码。
Java代码生成器生成的数据模型代码中,部分数据类型在字段值为null
时会不做处理;
此处有逻辑问题,正确的处理逻辑应当是把目标字段也设为null
。
修改此类方法的返回类型,从Object
修改为对应类型(目前仅为Map<Object,Object>
)
Java代码生成器脚本2429行 def generate_virtual_append_deleted_data_code
缺少参数声明
Java代码生成器生成的deepCopyFrom方法在std-list类型上有错误
在kotlin
中使用生成的java模型时,当在直接调用DefaultMapModel
及DefaultListModel
时,会抛出IllegalAccessError
异常
如题
代码生成器应支持自定义导入配置
Java代码生成器能够生成自定义的常量(public static final
)字段。
由于
BNAME_
前缀已被用来声明数据库字段名称,所以代码生成器应拒绝生成以BNAME_
为前缀的常量。
如题,此类方法的返回类型从Object
修改为对应类型
新支持std-list
,std-set
类型
path()
方法应当添加缓存,较少不必要的计算
clean()
方法中应包含loadonly
及transient
字段的清除逻辑,目前仅有存储字段的清除逻辑
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.