2016-10-28 10:52
model 采用的是 ActiveRecord 设计模式,每个 model 事先与 table 建立了关联,所以很多操作会更加便捷,例如: user.set(...).set(...).save();
而 Db + Record 是 jfinal 独创的设计模式,Record 与 table 没有关联关系,所以是在调用方法时指令的,例如: Db.save("user", new Record().set(...).set(...));
Model 也是与具体某个数据源关联的,而 Record 在使用的时候如果使用非主数据源,需要使用 Db.use(...).save(...) 这种形式来切换
此外, model 可以生成 getter、setter 符合 java bean 规范,有助于整合很多依赖于 java bean 规范的第三方
Db + Record 模式更适合于那种需要灵活查询的应用场景,例如做报表的场景,报表中的数据是跨很多 table join 起来的,这种天然就与某个特定的 table 关联不大
2016-10-27 00:20
@andywei jfinal 2.3 会让生成器支持你要的需求一直点点点的操作,即便是现在,你也可以通过继承 BaseModelGenerator 来扩展出这个功能来,微信群现在还没有,建议先加下微信公众号,晚安
2016-10-26 22:51
@andywei 以后像这种紧急的问题,用支付宝捐助一下,我就能收到一条手机短信,就会来社区登记支付宝捐助者,就能看到社区的提问了,事情太多,有时候得半天才看看社区动态
2016-10-26 21:10
@andywei 必然有最好的办法,使用如下的代码设置一下,jfinal 会去掉用 model.get(String) 方法,而不是 getter 方法:
ModelRecordElResolver.setResolveBeanAsModel(true)
在YourJFinalConfig 中的某个 config 方法中调用一次即可,记得搞定后回来反馈