2021-01-15 12:31

@北流家园网 以下这个配置就是按天的:
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender

2021-01-15 12:30

cglib 报了 CodeGenerationException 异常,可能是你的 CameraInfoService 这个类不能被 cglib 代理

将 CameraInfoService 的所有代码贴出来,应该可以找到原因

2021-01-15 01:22

重新编译一下出问题的代码:
1:如果是在 jdk 15 上编译,注意配置一下 maven-compiler-plugin 插件的 target 与 source 为 1.8,可以参考这个 pom.xml:
https://gitee.com/jfinal/jfinal/blob/master/pom.xml

2:如果是在 jdk 8 上编译,无需配置,但建议还是配置 pom.xml,这样就可以在任意版本的 JDK 上编译

2021-01-14 21:53

@杜福忠 jfinal 官方出的 log4j.properties 配置可以参考一下,按天滚动日志

2021-01-14 19:01

@zzufish 假设你有一个 126邮箱是 : test@126.com, 密码是 123456,发送邮件的服务器是 stmp.pop3.com,配置为:
emailServer = stmp.pop3.com
fromEmail = test@126.com
emailPass = 123456

其实这个没有什么好说的了

2021-01-14 16:08

@joneJson 下载 jfinal.com 首页的 demo, 项目结构都有了, 参考着写,啥事没有

2021-01-14 15:55

同一个 controler 内不用传参,直接
getInt(..)
get(...)
getBoolean(...)

记住 getParaToInt 可以改为 getInt, 使用新的 API,更短更省事

2021-01-14 15:53

@joneJson Model 是不能注入的,因为 @Inject 默认是单例, 你每次注入的是同一个对象,然后对同一个对象 xxx.save(), 必然出问题

且不说 id 重复,既便 id 不得复,在多线程情况下,数据就乱掉了

model 你要 save ,可以这样:
Icon icon = new Icon();
icon.setXxx(...)
.setYyyy(...)
.setZzz(...)
.save();

2021-01-14 15:05

@joneJson 你的 baseIcon 对象,每次 new 出来就没事

我前面说的你试一试 baseIcon.remove("id").save(); 只是让你验证错误的原因,并不是主张你这么用

baseIcon 你要让线程独享,不能多线程共享,否则数据就会混乱,这是 java 多线程模型规定的,不是 jfinal 的使用规则

也就是说,这是 java 基础知识,jfinal 不干预

2021-01-14 14:47

你试一下这样:
baseIcon.remove("id").save();

2021-01-14 14:47

关键在于 baseIcon 这个对象内的 id 值是从何来的

如果你上次 baseIcon.save() 过了一次, 下次再给它的其它字段赋值,再 save() 的话,其中的 id 值还是用的上一次的,必定出错

2021-01-14 14:15

我估计你是用了 dao.save(....) 这种

代码贴全一些

2021-01-14 13:40

jfinal 的 active record 模式就是没有属性的,只有 setter getter 方法

2021-01-14 13:39

@sioui 这个相当于是 sql 生成辅助了,对于一般简单需求来说可以用,但复杂嵌套 sql 不好处理

复杂 sql 我建议用 enjoy 模板,这个就是模板的场景

将 .sql 文件放在 .java 同一级目录极好管理,下载最新的 jfinal club 版本,可以看到这种用法

2021-01-13 20:51

单步调试一下,看哪个对象是 null 引起的异常