2020-11-30 12:32

@杜福忠 所有的.update()和.save 也都加上.use(DbKit.MAIN_CONFIG_NAME).

2020-11-30 12:30

@杜福忠 _MappingKit.mapping(arp); 和 com.kaochang.config.model._MappingKit.mapping(arpKC);两个库有相同的表名,但是字段不一致,可以确定没有注册错误和引错包的可能!改表名可能是最方便的解决办法,但是现在线上在用,还是打算先把所有的连库都加上use,再看是否解决了这个问题

2020-11-30 11:54

@杜福忠 找到问题了 对从库执行save或update方法之后,再调默认的数据源就会报错,但又不是所有主库查询都报错,现在只能把所有的DB. 都要指定数据源,加上use(“默认”)这种方式来改,这样改工作量巨大,不知道改完会不会又有新的问题,还有原先主库的model.save和model.update是不是也要改成model.use("moren").save()

2020-11-30 11:15

@杜福忠 估计问题出在 model.save()和 model.update()这里,没有指定数据源,是否子数据源不能直接用update和save

2020-11-30 11:03

@杜福忠 现在能重现问题了,对从库执行了更新数据的操作之后,再查询主库就会报错,从库中找不到主库的表

2020-11-30 09:32

@杜福忠 我用默认的查询主库的方式(即不加configName),系统拿到SQL却是去从库里面查,不知道其他人有没有遇到过这种问题

2020-11-30 09:24

@杜福忠 上面贴的SQL语法没有问题,现在能确定错误是因为查询语句运行在另一个库报的错,那个库的从库,而我调查询的方式是主库,这个也是之前的老接口

2020-11-30 09:21

@杜福忠 现在只能每个接口都调一下,看是哪个触发了这个错误

2020-11-30 09:02

@杜福忠 一直报这个错误,我把SQL贴出来java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'o.buyer' in 'where clause' SQL:SELECT od.* FROM order_detailed od
LEFT JOIN `order` o ON o.order_id=od.order_id
WHERE o.state=1
AND o.buyer = #para(idstr)
AND (od.deduction * 100) > 0
其中deduction 是字符串的金额格式,这个方法在服务器启动以后短时间内可以正常访问,这里一报错,其他很多查询也会跟着报错找不到表

2020-11-28 17:17

主数据源配置了DBKit.MAIN_CONFIG_NAME,问题依然存在

2020-11-28 16:15

@杜福忠 请问如果使用了Kit.MAIN_CONFIG_NAME常量来设置主配置,主数据源仍然可以省略configName吗

2020-11-28 16:10

@杜福忠 我贴了代码 劳烦看一下 感谢

2020-11-28 16:07

我也想过这个问题
ActiveRecordPlugin arp1 = new ActiveRecordPlugin(druidPlugin);
ActiveRecordPlugin arp2 = new ActiveRecordPlugin("次",druidPlugin);
me.add(arp1 );
me.add(arp2 );
arp1 是主,但是我这配置应该也没问题

2020-11-28 15:33

【Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'kcmysql.ql_student' doesn't exist】这个地方实际是要用主数据源,但是异常是:次要数据源中找不到主数据源中的表,也就是说主次都弄混了,老接口,一直没动过