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 值也一样,试用一下就知道了

2016-12-09 16:24

@java小王 小王 如果你在 url 中使用了项目名,那么又跳入了另一个坑,记住,做 java web 项目,永远都要将 context path 设置为 "",这里是原因:https://my.oschina.net/jfinal/blog/353062

2016-12-09 15:57

贴子中的信息量无法定位错误,建议先放一个普通的文件到项目中,然后 renderFile(...) 看工作是否正常