2018-06-06 17:53

@天气晴 使用 jfinal 的生成器是自动化搞定的,如果手动映射是这样:
arp.addMapping(tableName, "主键1, 主键2, 主键n", modelClass);

相当于是指定第二个参数,多主键用逗号分隔

2018-06-06 17:52

这个肯定是 IDEA 配置有错误,给一个最简单的的解决办法,如果是标准的 maven 项目:
1:删掉所有文件,只保留 src 目录与 pom.xml
2:重新导入项目,导入时注意当成 maven 项目来导入,让 IDEA 重新生成配置

如果不是 maven 项目, 按照 jfinal 文档中配置一下 default output folder 这类配置:
http://www.jfinal.com/doc/1-1

相当于将你上面的输出路径的 out 目录改成 web/WEB-INF/classes

2018-06-06 17:47

jfinal 的数据库功能是基于 JDBC 做的,如果 JDBC 支持那么 jfinal 才会支持

或许 jdbc 是不支持 source 命令的

2018-06-06 17:43

model、base model 、mapping kit 的模板都可以通过这种方法来定制

2018-06-06 17:42

第一个截图中的 gen.setBaseModelTemplate(...) 是关键,演示了如何通过模板来定制生成器的行为,使用起来极为方便

感谢你的分享

2018-06-06 17:40

@陈本布衣 自动化对应的,不需要人工干预

2018-06-06 15:47

可以 renderJson() 到前端,事实上我天天都在这么用

不会进入死循环

2018-06-06 12:02

单步调试一下,看现场发生了什么,靠猜就太慢了

2018-06-06 11:56

@HOHD 将 list 中的值迭代输出来看看,或许你看到的只是 list.toString() 的一个表象,而真实的数据没有看到

2018-06-06 11:54

12 行代码搞定这个功能,干净利落,楼主潜力很大啊

2018-06-06 11:07

写好 PermKit 工具以后配置一下:
engine.addSharedObject("PermKit", new PermKit());

2018-06-06 11:06

这个可以写个工具类,假定叫 PermKit :
#if(PermKit.has(....))
......
#else
......
#end

这个功能我计划做到 jfinal club 1.5 中去,你可以自己先尝试做一个

做的时候参考一下 jfinal 文档中的 shareObject 扩展即可,文档在此:
http://www.jfinal.com/doc/6-8

AuthAdminInterceptor 已经将登录后的 Account 放在了一个 ThreadLoacal 中,你可以很方便地从 AuthAdminInterceptor 拿到当前用户的身份,剩下的问题很就简单了

2018-06-06 11:02

数据库操作有关的代码建议写在业务层,然后业务层做 AOP 支持事务是最好的

还有一个办法是用 lambda 表达式包裹一下:
Db.tx(() -> {
这里是你需要开启事务的代码片段
return false 可以回滚事务,比 Tx 拦截器可控性更好
});

如果你希望可以从上面的包裹代码中得到多个返回值,还可以这样:
Ret ret = Ret.create();
Db.tx(() -> {
ret.set(...);
ret.set(...);
});

2018-06-06 10:19

@HOHD 那我就不知道你在问什么了

你前面问的是:能不能让list里面的属性有值, 我的回答是,只要你数据表中有值,那么就会有值