Model生成器对名称带有小数点的字段出错

Model生成器对名称带有小数点的字段出错

评论区

鼻涕刘o0

2019-09-24 11:08

这个肯定出错啊。

邓小杰

2019-09-24 11:45

命名规范。。。

JFinal

2019-09-24 12:02

还真没碰到过这种情况,居然字段名还能带小数点

建议通过继承 MetaBuilder 扩展解决一下

鲁智深

2019-10-16 10:24

@邓小杰 我知道命名规范,我只是提出一个bug而已~

鲁智深

2019-10-16 10:30

@JFinal 应该是和我们平时在用“SELECT u.username, u.password.....”时的情况一样,数据库可能为了兼容这种情况把小数点也带进去了

JFinal

2019-10-16 11:31

@鲁智深 我估计是生成器在输出带小数点的字段名的时候,当成了 field 表达式,可以通过拿到模板文件:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/plugin/activerecord/generator/base_model_template.jf

然后,将这个文件复制出来,改一改里面出问题的表达式,最后再为生成器配置自己的模板来代替官方的模板:
generator.setBaseModelTemplate("my_template.jf");
generator.generate();

类似的,除了 base_model_template.jf 以外,其它三类模板也可以通过这种方法来自己定制

由于 enjoy 模板有十分丰富的表达式,所以可以通过改变表达式来解决,例如:
#(obj.name.abc)
上述表达式如果其中的 name.abc 是作为字段名存在的,而 obj 又是一个 Map 对象的话,可以改成:
#(obj.get("name.abc"))
或者改成:
#(obj["name.abc"])

上述这种表达式换一种写法的方式可以参考文档

热门反馈

扫码入社