2018-06-06 11:02

数据库操作有关的代码建议写在业务层,然后业务层做 AOP 支持事务是最好的

还有一个办法是用 lambda 表达式包裹一下:
Db.tx(() -> {
这里是你需要开启事务的代码片段
return false 可以回滚事务,比 Tx 拦截器可控性更好
});

如果你希望可以从上面的包裹代码中得到多个返回值,还可以这样:
Ret ret = Ret.create();
Db.tx(() -> {
ret.set(...);
ret.set(...);
});

2018-06-06 10:19

@HOHD 那我就不知道你在问什么了

你前面问的是:能不能让list里面的属性有值, 我的回答是,只要你数据表中有值,那么就会有值

2018-06-06 10:13

确保 kh_computer_repair 表里面有数据, list 中才会有值

date 转成 js 是什么意思? 如果是转成 json , 这个是基本功能,早就支持

2018-06-05 21:18

@rirai mysql 的索引设计是比较差的,有时候你明明建立了索引,mysql 就是不使用

mysql 对索引的使用有很多限制,例如 where 中字段的多少,甚至字段的次序

2018-06-05 21:16

@阿帕奇 你这个是 quartz 的 cron 表达式,这个表达式是 cron4j 无法使用的,在这里有文档:
http://www.jfinal.com/doc/9-2

2018-06-05 21:15

Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority

异常已经很明显,缺少 log4j 的 jar 包导致

第三方的 jar 如果对 log4j 有强制依赖,也必须添加这个依赖

2018-06-05 21:14

@jimchow jfinal 3.5 考虑直接引入一个 @NotAction 注解,而不必使用拦截器,从根本上解决这个问题

2018-06-05 12:01

例如,最奇葩的一次是有个小伙伴将项目部署在腾迅云 VPS 上,而 这个 VPS 里头有一个腾迅云的后台进程自动调用 action,这个问题找了很久很久,因为太不好找了

2018-06-05 12:00

有四五个人碰到过,最终结果是确实有客户端调用了多次,找出来是哪个客户端请求过,改掉它就好

2018-06-05 11:58

@rirai 具体到你的 sql ,你应该创建 post_type 与 status 这两个字段的联合索引

2018-06-05 11:57

@rirai 使用控制台登录 mysql,然后用下面的方法:
explain 原sql在此

看一看你的 sql 是不是使用了索引,这个是性能提升的关键

2018-06-05 11:55

NotAction 确实无法解决 actionKey is already in use 的问题,因为这个是通过拦截器在被请求的时候临时来决定这个 action 不存在的,在路由映射阶段仍然是被映身为 action 的

改改方法名,或者改成 protected 就好

2018-06-05 11:53

这肯定是没更新到 jfinal 3.4, 或者是有老版本 jfinal 同时被引入了

可以通过下载首页的 jfinal demo,然后在页面中试用 #number 指令得到证实

2018-06-05 10:58

@万恶码农 出现 NoClassDefFoundError 的异常就好办了,只需要删除你本地 maven 库中的 jfinal 目录,然后让 maven 重新下载一次即可

原因是: maven 下载 jfinal 的时候出现数据错误,需删掉重新下载一次