2016-08-29 17:12

@happyboy 本质上来说就是该这样做,只不过 jfinal 让大家越来越懒了,希望可以有直接的支持

2016-08-29 17:10

@lihaijun.me 功能完善好以后人,会将有用的功能抽取成一个开源项目,多多关注社区动态

2016-08-29 17:10

是否设置了方言: generator.setDialect(new Sqlite3Dialect())
jfinal 生成 base model 时会通过反射获取的字段类型,完全依靠的 JDBC 得到的值,理论上来说是不会出错的
此外,是所有的 integer 都识别为了 String,还是少数情况?

2016-08-29 17:07

没有改为 ID1 之前有无问题?

2016-08-29 15:13

@Jimmy哥 还有很多事情做完以后才是 2.3

2016-08-29 12:27

这个情况确实比较诡异,是不是设置了外键? 建议调试跟踪一下,有发现反馈一下

2016-08-29 12:26

@java180 手误,应该是 "",jetty 下才是 "/"

2016-08-29 12:25

@nbjgl @飞羽 我个人对缓存的使用的基本路子是:
1:先不使用缓存,完全无视缓存,用数据库保存数据,并实现功能
2:在需要缓存加速的地方,引入缓存
3:缓存只在 service 层中引入,service 层以外完全不知道缓存的存在

这样做的好处是:
1:以数据库为核心,缓存只在适当的地方做辅助,数据可以持久化,避免了缓存断电丢失的情况。数据库存放数据更加结构化,便于管理,而缓存结构化差,不易于管理
2:缓存只在业务层中,业务知道自己如何管理缓存,例如某个业务的 getList(...) 方法使用了缓存,那么在这个业务的 delete()、update() 方法就可以精准地更新缓存,缓存管理统一在了当前的业务层之中,不会散布到各处,易于管理,不易出错
3:缓存对于业务的调用者完全透明

2016-08-29 12:15

referMe 这个字段用于存放 @提到我 数量,message 用于马上要做的私信功能,你还可继续添加字段用于存放其它类型的数据。
1:每次有 referMe 到来时让这个字段加1
2:用户访问网站的时候会去缓存取这个 remind model,如果没有则去数据库读,如3:果字段值大于 0 则显示 tips 提示框
4:当用户点击了 tips 提示框的链接,或者进入过 /my/referMe 这个 action 将 message.referMe 的值置为 0即可

2016-08-29 12:11

@nbjgl 没那么麻烦,我直接贴出 remind 表的设计
CREATE TABLE `remind` (
`accountId` int(11) NOT NULL COMMENT '用户账号id,必须手动指定,不自增',
`referMe` int(11) NOT NULL DEFAULT '0' COMMENT '提到我的消息条数',
`message` int(11) NOT NULL DEFAULT '0' COMMENT '私信条数,未来考虑加粉丝增加个数',
PRIMARY KEY (`accountId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2016-08-29 09:46

就是这个方向,注意三点:
1:原来的 classDefineTemplate 中是 extends Model,改成 extends CommonModel
2:让 CommonModel 继承 Model
3:使用生成器时注入:generator.setBaseModelGenerator(new ResetBaseModelGenerator())

2016-08-28 23:36

@nbjgl 社区会做收藏功能,到时候收藏更方便

2016-08-27 21:59

存的时候用 incrBy(Object, long) 就可以了,不要用 set 去存,因为 set 会做序列化操作

2016-08-27 17:18

没有这方面的打算,jfinal 目前只专注于做好“极速开发”,让开发效率快到我满意的程度才会考虑做其它类型的产品,即便到了那一天,要做什么类型的产品也会慎重考虑

2016-08-27 15:50

@455386896 在 public void afterJFinalStart() 中调用是最好的,注意看手册中的这个方法的用法。
此外,这样配置以后,一定要注意使用 ${obj.name} 的形式,而不能使用 ${obj.getName()}