-
Notifications
You must be signed in to change notification settings - Fork 5
生成代码中使用的局部变量、表类型名称引用 可能会跟参数名、表类型扩展成员名称冲突 #6
Comments
我觉得不应该让用户指定 tableClassName,在这个例子里面,实体类是 Entity,表对象的名字就应该是 Entities,sequence 的名字是 entities,这不仅可以解决命名冲突的问题,而且可以限定用户的命名风格 |
Entity --> Entities --> entities 这是 Ktorm 推荐的命名风格,我们提供 tableClassName 这种配置,就会存在很多不符合我们命名规范的情况出现 |
现有的tableClassName自动生成方式,可能无法满足一些情况。例如child的复数应该是children,但是目前的逻辑只会自动转换成childs,如果不能自定义tableClassName的话其实也挺奇怪的 |
#4 这个PR 可以自定义生成的序列扩展名称 |
而且我认为命名只要在符合编程语言要求的范围内,就应该是约定俗成的而不是强制约束。毕竟语言层面都允许这种小写字母开头的类名。我们应该尽可能在默认配置下生成符合规范的命名,同时尽可能做到更多的可自定义配置 |
@lookup-cat child --> children 的问题很好解决,github 上有一些现成的英语名词复数转换的库,比如 atteo/evo-inflector,另外我注意到现在代码里面复数转换是自己写的,建议可以改成使用类库提高转换的准确性 |
问题是使用类库来转换名词复数也不是 100% 准确的,这个我同意你的观点,可以提供让用户自己指定 但是我坚持要统一命名风格的观点,即使我们允许用户自己指定名字,当他给出的名字不符合命名规范时,我们需要进行检查,并且给出警告 |
刚想可能需要做一个自动分配变量名称避免命名冲突的逻辑,结果发现kotlinpoet是有做这个功能的(这么有用的功能竟然没放到官方文档里 |
v1.0.0-RC3已修复 |
实体类型
生成表类型代码
这个entity表名可能会跟多处生成代码发生冲突
考虑把sequenceOf的参数改成全限定类名,可以解决此问题(除非这个表类型的包名是空的)
add
、update
方法参数冲突参数名和表类型名称都是entity导致报错,在其他生成方法也会出现这种情况,需要考虑将其参数改成不容易发生冲突的名称
The text was updated successfully, but these errors were encountered: