jfinal 4.8 SQL模板无法找到的问题

同时使用了三个不同数据库的数据源,之前两个一直在用SQL模板,正常启动。

昨天给第三个数据源加入了SQL模板,启动报无法找到文件,再三确认路径没有问题(放在resource根目录下,其他两个数据源找到了文件),今天发现与前两个数据源配置不同的是加了根路径的设置,删除后启动正常。

arpMsSql.setBaseSqlTemplatePath(PathKit.getRootClassPath());


请詹总看看是否有bug?

评论区

JFinal

2019-12-25 14:11

arpMsSql 对象中的 Engine 使用的是 ClassPathSourceFactory,该组件会以你的 class path 与 jar 包中的根目录为根去找模板文件

而你配置了 MsSql.setBaseSqlTemplatePath(PathKit.getRootClassPath()),这里假定你的 PathKit.getRootClassPath() 值为 D:/sql,那么最终将会去你的 class path 下面的 D:/sql 或者 jar 包中的 D:/sql 中去找模板文件

而这两个目录显然是不存在的

在 arp 中一般不建议配置 setBaseSqlTemplatePath ,而是直接 addSqlTemplate 的时候带上以 class path 为根的相对路径

下载首页的 jfina_demo_for_maven.zip,里头有实际的用法,照抄即可

热门反馈

扫码入社