2018-01-18 16:09

参考 sql 管理这一章的文档来做:
http://www.jfinal.com/doc/5-13

2018-01-18 16:07

@fox 终极办法是单步调试,看底层到底在怎么运作,其实很容易改的,就是一个分页而已,本质还是运行两条 sql 而已

2018-01-18 16:06

@livem 这个得看看 druid 的官方文档了, jfinal 不干预这件事情

2018-01-18 12:35

据猜测你是使用了 static 声明的 dao.save()

static 声明的对象是全局共享的,当你第一次 dao.save() 时 id 会生成到这个 dao 对象中,当第二次 dao.save() 时,id 已存在,并且是原来的值,必然出错

dao 这个对象在创建的时候要调用一次其 dao() 方法,如下所示:
static User dao = new User().dao();
这样就可以 避免你 dao.save() 的错误

2018-01-18 12:28

@燕龙910 如果确实嫌麻烦,可以使用 jfinal 3.2 这个版本,这个版本还是很不错的,jfinal 3.3 主要是一些性能优化

jfinal 3.4 发布以后,直接升到 3.4 即可, jf 3.4 已经完美解决了这个需求

2018-01-18 12:27

@燕龙910 如果确实嫌麻烦,可以使用 jfinal 3.2 这个版本,这个版本还是很不错的,jfinal 3.3 主要是一些性能优化

2018-01-18 12:26

你让这个 isTakeOverDbPaginate() 返回 false 才能让 Dialect 接管分页

但你貌似用的 AnsiSqlDialect,这个天然就是要 take over paginate 的,不知道最终希望用哪个

2018-01-18 12:24

因为有新需求,希望在数据库中读取路由,所以希望先初始化 configPlugin 中的 ActiveRecordPlugin,然后在 configRoutes 中可以查询数据库来动态获取路由

这个在 jfinal 3.4 版本会提供一个配置来设定执行次序,目前建议先使用 jfinal 3.2

2018-01-18 12:22

这个是问题,不是分享,发到反馈区

2018-01-18 12:22

解决办法是让 IJPay 依赖的这些个第三方,配置 dependency 时,让 scope 为 compile 即可

2018-01-18 12:03

前后端分离的场景,注意也可用一下下面的代码创建一个 ActiveRecordPlugin:
ActiveRecordPlugin.useAsDataTransfer(...);

useAsDataTransfer(...) 方法中的各项参数,使用与后端一样的配置,例如 Daielct 之类的,这样可以保持统一

2018-01-18 11:37

@King 第一个确实是 jfinal 需要改进的一个地方,jfinal 3.4 会改进这里,目前建议如下几个主方案:
1:在 src/main/resources 下创建 com.jfinal.plugin.activerecord 包,然后将 jfinal 的 Model 拷贝一份进去,然后对 keep(...) 方法做点修改,在 Config config = _getConfig(); 这行代码下面添加下面的两行代码;
if (config == null ) {
config = DbKit.brokenConfig;
}

2:如果你扩展过中间 Model,可以这个中间 Model 中覆盖这个 keep(...) 方法

第二个问题,使用新版本的 jfinal 是不会出现的,因为新版本的 Model,里头的 getAttrName 的 getter 方法都添加了下划线前缀

记得搞定后回来分享一下

2018-01-18 11:28

@朱 @lyh061619 这个是 Springboot 的坑,正好有人碰到过,且有比较好的处理方案:http://www.jfinal.com/share/457