【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
我有一个表,ID是自增字段,我进行下面操作:
Uploadfile.dao.set("filepath",url) .set("filetype",uFileType.get(0).get("id")) .set("createtime",nowTime).save();
杯具发生了,他生成的SQL是:
Sql: insert into `uploadfiles`(`id`, `createtime`, `filepath`, `filetype`) values(?, ?, ?, ?)
连自增字段都添加上了。
后来我用KEEP方法搞掂!
Uploadfile.dao.set("filepath",url) .set("filetype",uFileType.get(0).get("id")) .set("createtime",nowTime) .keep("filepath","filetype","createtime") .save();
虽然搞掂,但觉得不太方便,不晓得还有啥方法好使,不想用Db.update!!
正确的做法应该是:
YourModel 内的 dao 仅用于数据查询,不能用于承载数据,请看JFinal手册1.1.6第24页第一行,有如下说明:特别注意:User中定义的 public static final User dao对象是全局共享的,只能用于数据库查询,不能用于数据承载对象。数据承载需要使用new User().set(…)来实现。
另外,既然你用到了keep方法,但此时只需要去除id,可以使用 remove("id")来做到,这样更省代码。
Jfinal Model静态dao对象误用的问题
http://my.oschina.net/b1412/blog/84336
文档中不如把dao去掉算了,免得让大家误解.
不知道这么用的,查询也让他们new Model好了