2024-07-04 09:59

你的用法本来就是对的,多数据源就是这么用的: Db.use(dbid).template(......)

调试一下,是别的原因引起的

2024-07-03 19:44

需要首先确认一下,当前用的 json 转换是哪个实现,单步调试看一下是不是用的 JFinalJson 在操作

2024-07-02 18:13

linux 下一般是权限问题,用 chmod 解决一下

2024-06-25 20:01

Navicat 比 IDEA 自带的好用,比 datagrip 也要好用,现在就去下载一个,赞

2024-06-17 17:37

之前的 jfinal 由于是 all in one 项目,而一直要确保 jfinal 自身没有任何第三方依赖,所以必须要无第三依赖地方式去实现动态代理

从这个角度上验证了:严苛的限制条件可激发创新

这个问题还导致了我有新的创作思路,完美的东西放 aifei 内核,不完美的东西放内核之外,这样极大减轻了工作量

2024-06-17 17:34

@chcode 确实可惜,还有一个原因是 aifei 内核尽可能是纯抽象代码,所以动态代理这类实现被放在 aifei-base 等周边项目之中

而周边项目,我并不打算做到对任何第三无依赖,所以用用 javassist 变成可接受的

最终,只要确保 aifei 内核是完美的就可以了

2024-06-17 10:02

代理建议用后来新增的 javassist 代理实现,阿里这些大厂用的这个,配置一下:
me.setToJavassistProxyFactory();

新框架 aifei 已经将默认代理切到 javassist 了,原先的动态编译不再使用,主要原因还是动态编译依赖 JDK,而有些 docker 服务端生产环境可能安装的是 JRE

2024-06-14 17:47

@liugz 谢谢你这么多年对 jfinal 的支持

2024-06-14 15:28

你代码中的这些不再需要,因为后来的 jfinal 版本早就默认是这样的配置了:
arpDc.getEngine().setToClassPathSourceFactory();

2024-06-14 15:26

已经改进了这里:
https://gitee.com/jfinal/jfinal/commit/3cdab9ebd945d96002c13ea28c007f1c0fdd8e24

目前,你可以通过复制我刚刚提交的代码,改个类名,去实现独立配置的需求

2024-06-14 15:13

我看了一下源码,看到了这个:
private static Boolean toLowerCase = null;

证明还真是共享的,我一会去除 static 这个关键字

2024-06-14 15:12

@liugz CaseInsensitiveContainerFactory 的配置在每个数据源中是独立的,你在这个类里面打断点调试一下看看,应该是别的原因造成的

2024-06-14 14:49

@liugz 这个就是可以各个数据源各管各的,可以分别配置:
arp1. setContainerFactory(...)
arp2. setContainerFactory(...)
arp3. setContainerFactory(...)

注意看源码,参数为 true/false 决定是 jfinal 在框架层面是否要帮你转成大写或小写,无参时 jfinal 不干预

所以,CaseInsensitiveContainerFactory 构造方法的参数,有三种用法,分别是:无参、true、false, 都试一下

2024-06-14 13:54

看一下源码 CaseInsensitiveContainerFactory.java , 单步调试一下,而且这个也可以扩展,扩展 ContainerFactory 接口

2024-06-14 13:27

new CaseInsensitiveContainerFactory(true)
改为
new CaseInsensitiveContainerFactory()
即可

如果希望转成大写,改为
new CaseInsensitiveContainerFactory(false)