2016-09-29 17:45
@netwild 如果你用的是最新版本的 jfinal 2.2,那么在创建 CaseInsensitiveContainerFactory 的使用的时候,不要传入任何参数,也是不会有问题的这样用:
arp.setContainerFactory(new CaseInsensitiveContainerFactory()))
注意构造方法不带参数即可
2016-09-29 17:40
@老八 对,就是说的这个组装结果集的代码,这个地方出来的数据是从数据库那边刚刚过来的,所以可以确保没经过什么干扰,如果这里就出问题了,那可能是 jdbc 驱动的问题,换个驱动试试
2016-09-29 17:32
@netwild 在这行代码后面 arp = new ActiveRecordPlugin(...),去掉这一行:arp.setContainerFactory(...)
2016-09-29 16:30
@老八 在 com.jfinal.plugin.activerecord.RecordBuilder.java 中设置一个断点,单步调试一下看得到的值是什么,类型是什么,这个问题很诡异,以前没人反馈过,有情况再来反馈一下
2016-09-28 17:59
@loogn jfinal 只会顾及最常用的用法,类似于 age in (20, 30) 的直接用 find(String sql, Object... paras) 即可,取舍对于框架来说是必须的,否则复杂度、学习成本会急剧上升
2016-09-28 16:39
如 @小木学堂 所说,jfinal 提供的 findById(Object... idValues) 是查询拥有复合主键model的,你的建议很好,回忆一下平时开发 where id in(...) 这种用法确实挺多,已做备忘,jfinal 2.3 会考虑添加此功能
2016-09-28 11:53
通过 getFile() 得到 UploadFile 的 uf 对象以后,可以通过 uf.getOriginalFileName() 得到最初的文件名,然后再利用这个名字: if (new File(name).exists()) 检测一下文件名是否存在,如果存在,则先删掉,然后再将新上传的文件改名,大致如下:
oldFile = new File(uf.getOriginalFileName());
if (oldFile.exists()) {
oldFile.delete();
uf.getFile().renameTo(uf.getOriginalFileName());
}