遇到一个纠心jfinal的技术问题,望大神解惑

wigilin 发布于 2015/11/02 10:56
阅读 321
收藏 2

@JFinal 你好,想跟你请教个问题:我现在项目用到了自定义列,我可以动态往table 添加新字段,那么当我添加完新字段,页面提示自动封装model保存的时候,会报 The model attribute department.F_2 is not exists.新加的字段无法被识别到自动进而自动封装.请问有什么办法可以解决这个问题吗?难道一定要重启才会生效

加载中
0
mi-la-king
mi-la-king

动态往table 加字段 用  db操作试试

0
wigilin
wigilin

引用来自“mi-la-king”的评论

动态往table 加字段 用  db操作试试

恩。是可以,关键是save的时候没办法按model来save,因为model不识别你新加入的字段
mi-la-king
mi-la-king
save 也可以 直接 db。save嘛
0
如梦技术
如梦技术
试试把`ActiveRecordPlugin`初始化那块抽出来,表结构更新之后重启下这个插件!
0
iehyou
iehyou
db+record  动态表就不要用model
0
私奔去月球
私奔去月球
mark @jfinal 有什么好的方法吗?
0
JFinal
JFinal

   三个办法:

1:最简单的办法是将 ActiveRecordPlugin 对象先 Hold 住,然后在对数据表字段进行过变动后,Holder.activeRecordPlugin.stop() 然后Holder.activeRecordPlugin.start() 最快打完收工。

2:在表结构有变动后,利用 TableBuilder 中的代码,重新生成 Table 对象,然后直接 TableMapping.me().putTable(table) 即可打完收工。

3:直接使用 Db + Record 模式,什么都不用干即可打完收工。动态改数据库表结构也可以使用 Db.update(sql) ,极致简洁。

返回顶部
顶部