2016-12-10 18:44

oracle 将字段转成了 BigDecimal,所以 getInt 会报类型转换错误,建议定制一个 BaseModel extends Model,将其中的 getInt方法覆盖掉,改为 return getNumber(attr).intValue() 这样就支持所有数值类型了

然后生成器生成的 XxxBaseModel 从以前的继承 Model 改为继承自你自己定义的 BaseModel

2016-12-10 18:41

@柒爱 Db.tx(...) 支持事务,手动 jdbc 就是自行获取连接,用纯 jdbc 的操作方式来做

2016-12-10 16:03

最好用 Db,一个 sql 全搞定:Db.update("delete from a_r where admin_id=? and rol_id=?", adminId, roleId)

如果不用 Db 的话,可以手动连下 jdbc,然后发条 sql 删也是一样的

2016-12-10 14:43

model.deleteById(id1, id2)

2016-12-10 10:16

@fangjunai 如果要可写,那要考虑的事情就多多了,jfinal 会为了保持极简性而权衡不去实现一些用得比较少的功能,这部分功能留给大家自由发挥

2016-12-10 10:15

这段代码历史比较久远,细节已然记不清,大致是有些 jar 包不需要被加载或者路径不对,可以用上述的方式过滤这些 jar 包,或者转换目录

2016-12-09 19:39

原因是 paginate 方法会直接使用 "select count(*) ...." 去查询分页需要的总记录条数,这时就丢弃了 distinct 关键字,外层套一个 select * 就没事

2016-12-09 19:35

写个全局拦截器,拦截所有你需要一键关闭的这些个接口,该拦截器里面放个开关变量,大致如下:

public class EnableApiInterceptor implements Interceptor {
private static boolean enableApi = true;
public void intercept(Invocation inv) {
if (enableApi){
inv.invoke();
} else {
inv.getController().renderText("Api closed");
}

// 外界控制开关变量方法
public static void setEnableApi(boolean idEnable) {
enableApi = isEnable;
}
}

然后在后台管理做个 action 调用一下 EnableApiInterceptor.setEnableApi(...) 即可控制,当然还可以通过直接在 url 中传参的方式控制,要活学活用

2016-12-09 19:30

PropKit 最初设计目标是加载外部配置文件,没有提供写入功能

2016-12-09 19:29

@zhaozhihong 又一个入坑的,这里是出坑的办法:https://my.oschina.net/jfinal/blog/353062

2016-12-09 19:28

补充一下,如果你仍然希望是 A 定时启动 B,仍然按照这个贴子来也是可以的,只是 B 根本没有必要存在:http://www.jfinal.com/share/37

2016-12-09 19:27

你希望是定时任务 A,定时启动另一个定时任务 B,只要合理安排好定时任务 A,那么定时任务 B 不需要存在

具体方法见这个贴子:http://www.jfinal.com/share/37

2016-12-09 19:25

如果是 paginate 方法中使用 distinct,在外层套一个 select * from (原 sql ) as t 就可以了:
paginate(1, 10, "select *", "from ( select distinct ....) as temp", p1, p2,..., pn)

2016-12-09 17:27

@charlox 集群简单来说,只要做好多份数据的同步,或是避免数据多份从而使用共享数据即可

而 redis 之下,如果你只有一个 redis 服务端,那么天然就支持了分布式,如果是多个 redis 服务端,只需要利用 reids 的集群配置做好数据同步就好

jfinal 仅仅是一个 web mvc + orm 框架,所以集群问题在本质上与 jfinal 无关

2016-12-09 17:24

model 中有一个 Set modifyFlag 就是专门做这事的,在你使用getModel 的时候,当前 model 中只要是被操作过的属性就会被 update 到数据库,即便是 null 值也一样,试用一下就知道了