2019-10-30 19:31

@Westwood 我明白你的需求了,你是希望 save() 在往数据库插入一条数据以后,可以立即使用 model.getXxx() 来获取使用默认值生成的字段值

jfinal 目前只能满足这种需求的自增主键的获取,无法满足你在例子中的字段 b 的获取

自增主键的获取可以这样:
model.save();
model.getId();
也就是说自增主键在 save() 方法调用以后是自动从数据库获取到的

2019-10-30 18:08

Flash 用得越来越少了, html 5 中能不能开启报像头拍照?

感谢分享,赞

2019-10-30 14:42

多个地方共用同一个 appId 获取 token 的情况,后获取到的会让前获取到的 token 失效

解决办法是用一个中心式的缓存,让多个地方共用缓存中的 token

2019-10-30 13:27

估计你的 awardStatus 为 String 类型,用一下 enjoy 的 extension method:
#(awardStatus.toInt() == 6)

2019-10-30 13:26

@Westwood 可能你将 jfinal 的 model.save() 当成是 hibernate 去理解了

save() 方法只会去保存 set 过的值,其它的值不会改变它

如果你的代码由于某种原因调用了 model 的相关 set 方法,可以用下面两个方法来解决:
1:model.removeNullValueAttrs();
model.save();
remove 方法会去除 model 内的 null 值字段,然后你再 save() 就不会覆盖掉数据库的默认值了

2:model.remove(fiel1, fiel2, field3, ...);
model.save();
remove 方法会去除 model 内指定的字段,可同时指定多个,然后 save()

3:model.keep(fiel1, fiel2, field3, ...);
model.save()
如果要去除的字段很多,反而是需要保留的很少,可以使用 keep 方法指定要保留的字段值

jfinal 数据库操作早已解决了这方面问题

2019-10-30 11:33

@Westwood 最好的办法是数据库表的字段直接设置默认值

2019-10-30 11:03

@Westwood 在最终的 model 中,覆盖父类的 save() 方法,判断默认值是不是有,没有的话,设置一个,例如:
public MyModel extends Model {
public boolean save() {
if (get(xxx) == null) {
set(xxx, defaultXxx);
}

if (get(yyy) == null) {
set(yyy, defaultYyy);
}

return super.save();
}
}

当然如果希望更完美,可以先定义一些默认值的常量,例如:
public MyModel extends Model {
public static int STATUS_FAIL = 0;
public static int STATUS_OK = 1;

public boolean save() {
if (get("status") == null) {
set("status", STATUS_OK);
}

return super.save();
}
}

2019-10-29 15:04

以 DbKit.getConfig(configName) 为准

2019-10-29 15:04

@farce stop() 以后, DbKit.getConfig(configName) 是获取不到被释放的那个 config 对象的

你通过 arp.getConfig().getName() 获取到的只是从 DbKit 中移除的,但并不在系统内产生作用的对象

2019-10-29 13:22

@farce arp.stop()以后应该会被回收的,建议在 start() 、stop() 方法中设置断点,单步调试看看到底是什么原因出现的 Config already exists

2019-10-29 11:48

单步调试跟踪进入 Table.java 内部,看一下里头生成的字段名是啥

_MappingKit.mapping(arp) 这行代码有没有?

2019-10-29 10:32

@抉择 发送消息如果失败,服务端貌似会回复一个状态码,根据状态码来处理一下

你碰到的是细节问题,需要通过单步调试来解决,肉眼去看是很难发现问题的,调试环境的搭建参考文档:
https://gitee.com/jfinal/jfinal-weixin/wikis/JFinal%20weixin%20demo%E5%92%8C%E8%B0%83%E8%AF%95?sort_id=10002

2019-10-29 10:27

@farce ActiveRecordPlugin 自己占用的资源会被回收,其被传入的 DataSource 资源需要手动 stop()

2019-10-28 19:48

void processInTextMsg(InTextMsg inTextMsg) 这个方法是否被访问到了,这个是关键,要确保请求是存在的