2016-07-28 00:25

@拖拉机 多多支持 jfinal 发展

2016-07-28 00:24

sql 可以写在外部配置文件,jfinal 提供了一个 Sqls 工具类来支持,你也可以自行写代码从外部加载 sql

2016-07-27 17:45

@bufan 建议再仔细看一下 model 的 find 方法

2016-07-27 17:37

@bufan 绕开了paginate 方法,而是使用 Db.queryLong(...) 以及 model.find(...) 方法查询当前页的内容,前面是手误打错字了,本意是指 "model.find(...)"

2016-07-27 17:36

@精彩飞扬 留个邮箱,我发你一个文件,直接可用在 jfinal 2.2

2016-07-27 16:50

jfinal ext 很久没升级了,不支持 jfinal 2.2,jfinal 2.2 的 Logger 已更名为 Log

2016-07-27 16:42

@bufan jfinal 2.2 引入了 BaseModelGenerator,为 model 生成 getter、setter 方法,除了开发者喜欢使用以外,还有一个很重要的原因是支持一些第三方的,依赖于 getter、setter方法的工具或框架。当有了 getter 以后,如果 getAttrValues() 不添加下划线,会被认定为一个 getter 方法来处理,引来一些不必要的问题。

例如 Fastjson 在转换的时候会先将一些常规则 getter 方法得到的数据转成 json,然后再会将 getAttrValues() 得到的数据再转一次,这是没有必要的

2016-07-27 16:37

@bufan order by 替换使用的正则无法覆盖掉那些比较偏的用法,例如 order by 中用到一些 sql 函数的情况,造成错误。如果加强正则的匹配能力,则性能急剧下降,所以对于此类 sql,可以使用一下 Db.queryLong(...) 查询总记录数,然后再使用 model.find(...) 方法查询当前页的数据,实现分页的功能。相当于是多写几行代码来代替 paginate 的功能

2016-07-27 16:03

doPaginate 方法是为了方便其它的 paginate 方法重用。 替换掉 order by 的 sql 是用于查询得到 totalRow,查询总量的时候是没必要使用 order by 对结果进行排序的,会损失性能

2016-07-27 11:45

@Andydmx 严格来说 "null" 是字符串,null 是常量,这个是完全不同的概念,如果处理不当会出奇奇怪怪的问题。为了区分新加还是编辑,其实可以很简单地通过 id 是否为 null来判断一下,如果是 null 调用一下 model.remove("id") 然后再 model.save(),如果为非 null,直接 model.update() 即可

2016-07-27 11:40

@Andydmx 方言是否设置了:arp.setDialect(new PostgreSqlDialect()),并且 jfinal 用的哪个版本呢?

2016-07-27 11:13

@yigegeman 你没映射啊??? arp.addMapping(...) 或者 _MappingKit.mapping(arp),建议先仔细看完手册,再开始开发,少走很多弯路

2016-07-27 11:02

@yigegeman 方便啊,单元测试不是有个 setup() 方法吗? 这个就是专门为测试做准备的啊,在这个 setup() 方法中启动 ActiveRecordPlugin,启动方法在手册中有

2016-07-27 10:08

@yigegeman 网页你启动了 web 项目,jfinal 调用了 configPlugin 中的 ActiveRecordPlugin 初始化。而你上面这个是测试用例,看下手册中有关 ActiveRecordPlugin 用于非 web 环境的章节