2019-03-01 14:24

@373118970 如果 user_details 与 user 只是一对一关系,弄个主键叫 userId 就好

如果是多对多关系,弄成联合主键:userId、detailsId

2019-03-01 11:46

在 jfinal 3.6 之中,可以去掉下面这行代码:
arp.setBaseSqlTemplatePath(PathKit.getRootClassPath());

因为默认就是去 class path 下去找 sql 模板文件

2019-03-01 11:45

核心在于 active record 模块的 sql 管理使用的是 jfinal enjoy 模板引擎管理的,所以有关的配置都是 enjoy 的配置:
https://www.jfinal.com/doc/6-2

2019-03-01 11:44

@对呀 jfinal 3.6 版本有关于 sql 管理的 engine 配置为:
arp.getEngine().setSourceFactory(new ClassPathSourceFactory());

而 3.6 版本之前的配置为:
arp.getEngine().setSourceFactory(new FileSourceFactory());

注意 ClassPathSourceFactory 与 FilePathSourceFactory 的区别,前者是从 class path 以及 jar 包中读取 sql, 后者是从普通的目录下面读 sql

一定要看一下 jfinal 3.6 的升级说明:
https://www.jfinal.com/doc/14-1

也一定要弄清楚 ClassPathSourceFactory 与 FilePathSourceFactory 这两者使用的场景:
https://www.jfinal.com/doc/6-2
注意看第 6 小节:从 class path 和 jar 包加载模板配置

2019-03-01 11:30

@年轻似水 支持,可能是类名写错了,你用 winrar 打开 jar 包,看看 com/jfinal/plugin/ehcache 包下面会有一个 Ev 开头的类

2019-03-01 11:29

arp.setBaseSqlTemplatePath(null);
arp.addSqlTemplate("xxx.sql");

注意最后的 : arp.addSqlTemplate("xxx.sql") 根据你的目录来,例如,你将 xxx.sql 放在 src/main/resources 的根目录下,就直接;
arp.addSqlTemplate("xxx.sql");

假如放在 src/main/resources/abc/def 目录下面,则:
arp.addSqlTemplate("/abc/def/xxx.sql");

2019-03-01 11:14

EvictInterceptor 是 jfinal 自带的,直接用上即可

2019-03-01 11:13

添加配置:
undertow.hotSwapClassPrefix=com.jfplugin.

文档中早有说明:
https://www.jfinal.com/doc/1-5

2019-03-01 11:11

控制台已输出提示信息:
Skip table user_details because there is no primary key

Active Recrod 模式需要你的 model 必有要有主键,否则不能使用,因此不会生成 Model

2019-02-28 20:36

PermGen space 内存不足是很古老的问题了,用上最新的 jfinal 3.6

2019-02-28 17:55

@对呀 这块只要了解 enjoy 引擎就知道了,因为这个就是对 enjoy 引擎进行配置而已

2019-02-28 17:45

删除 arp.setBaseSqlTemplatePath(PathKit.getRootClassPath()) 即可

2019-02-28 17:42

@再次表明 @vigo 直接导入项目,不要做任何多余的配置,立即启动即可

2019-02-28 17:41

看一下 lib 包下面的本项目的 jar 包在不在,如果在的话,用 winrar 打开一下,看主类在不在

最后,按照文档解决一下:
https://www.jfinal.com/doc/1-5

注意看第 7 小节,脚本问题几乎所有问题都在这个小节可以解决

2019-02-28 12:33

@jounzhang 主要还是历史原因引起的,jfinal 的这个设计是在 2011 年完成的,一直没有动过

findFirst 一般是在 id 上使用 where 条件,而 id 是唯一的,所以只会返回一条数据,由于 id 是自动被索引过的,性能也是最好的