使用jfinal new user.set().save();方法时 如果没有id会报错 怎样说设置自动生成id呢?uuid

想使用save方法 但不用每次都给id吧  有没有什么注解 譬如@id 默认给生成一个uuid呢?
不是自增 

评论区

JFinal

2019-02-13 18:27

User 中覆盖下 save(),置入 id 值然后 return super.save()

或者数据表 id 字段设置为自增

王子鹏

2019-02-14 10:39

@JFinal 非常感谢! 解决了我的问题 但是请问 如果当我有很多个类 都需要生成id 有的还需要生成时间 或者其它自定义的(譬如当前用户id) 除了一个个去覆盖父类的方法 还有没有别的办法 ?

王子鹏

2019-02-14 10:44

@JFinal 或者能不能设置在生成实体 并给实体新增dao时
(public static final BaseUser dao = new BaseUser().dao();)
同时新增一些其它自定义方法

杜福忠

2019-02-15 14:15

新增一个BaseModel,然后你的Model都去继承它,在BaseModel中去重写save就可以了。
也可以增加一个 kit工具,如:ModelKit.save( Model ) 里面进行set你需要的值

王子鹏

2019-02-15 16:17

@杜福忠 谢谢! 我用了第二种方法 解决了我的问题

王子鹏

2019-02-15 16:18

@杜福忠 因为实体类会频繁的重新生成 每次都去更改继承的父类也比较麻烦

JFinal

2019-02-15 18:24

@王子鹏 将 jfinal 模板文件 copy 出来,然后直接改模板,最后配置使用自己的模板:
generator.setBaseModelTemplate("my-base-model-template.jf");
generator.generate();

在上述的 "my-base-model-template.jf" 模板文件中,将 Model 改成你自己弄的一个 BaseModel 即可,一次性搞定所有,十分方便

JFinal

2019-02-15 18:25

@王子鹏 补充上面:首先你做一个 BaseModel 继承 Model,然后在 BaseModel 中覆盖 save() 方法完成功能

最后自己所有的 Model 由继承 Model 改成继承 BaseModel。 改生成器模板是最方便的

王子鹏

2019-02-17 20:16

@JFinal 自定义了模板文件 先继承自己自定义的类后继承model 这个方法很好用! 谢谢!

热门反馈

扫码入社