应该是很简单的事,但是我遇到了问题,请帮忙看下是哪里不对。
Enjoy template 写 html 是热加载的,但是 sql template 却没有,同样是外部模板文件,sql template 如何才能热加载?sql 文件应该放到什么目录下(我不需要 class 的热加载,只需要 sql template 的热加载)
在 jfinal-admin 项目上,按照下面文档设置了 开发模式:
找到下面这个使用 sql template 的地方,但是, 修改 sql文件后,并没有重新加载,
这是 修改之前的 log
随便修改一下,增加了 and 1 = 0 这个条件
刷新页面
但是,输出的 sql 还是原先的内容
重新启动程序后,再次刷新页面,才能看到 执行了修改后的 sql
sql template 直接放到 resource 下,也不能热加载
测试代码,还是刷新页面,看 log 输出
添加 sql template
当修改 tmp.sql 后,刷新页面,看 log 输出,还是修改之前 sql 的结果。
------------------------------------------------------------------------------------------
已解决:
原因是读取的 sql template 其实是 target/classes 目录下的,根据文件的修改日期来判定是否要再次加载,而我用的是 IDEA,修改后的sql 文件没有被自动复制到 target 目录下,所以修改后的文件自然就读不到。
尽管也有帖子说如何自动编译,但遗憾的是我在 2022.2 版本上都没实验成功......,不过不要紧,退而求其次,只要在修改 sql 文件后,执行下 build project 也就可以了,会自动把 sql 从 resouces 目录下复制到 target/classes 目录下,文件的修改日期就对了,就能加载到修改后的 sql 了。
2022.2 截图:only works while not running/debugging
和 https://jfinal.com/share/2309 相比,居然第一项 allow.when.app.running 没有了
哪位同学如果实现了运行时的 auto build,还请告诉我一下。
arp.setDevMode(true)
而不是在 addSqlTemplate 之后再调用 arp.setDevModel(true), devMode 要先配置