老师,今天遇到一个很奇葩的问题?在做店铺更新的时候,数据库主从同步的bug
来源:6-2 店铺信息编辑之Service层的实现
风一样丿男人
2021-03-09
第一次传入参数编辑的时候,数据源为:slave,.当更新之后,给前端返回的时候,数据源为:master。
同样的方法ShopDao.queryByShopId。
写回答
2回答
-
翔仔
2021-03-09
if (ms.getSqlCommandType().equals(SqlCommandType.SELECT)) { // selectKey 为自增id查询主键(SELECT LAST_INSERT_ID())方法,使用主库 if (ms.getId().contains(SelectKeyGenerator.SELECT_KEY_SUFFIX)) { lookupKey = DynamicDataSourceHolder.DB_MASTER; } else { BoundSql boundSql = ms.getSqlSource().getBoundSql(objects[1]); String sql = boundSql.getSql().toLowerCase(Locale.CHINA).replaceAll("[\\t\\n\\r]", " "); if (sql.matches(REGEX)) { lookupKey = DynamicDataSourceHolder.DB_MASTER; } else { lookupKey = DynamicDataSourceHolder.DB_SLAVE; } } }
可以设置断点if (ms.getId().contains(SelectKeyGenerator.SELECT_KEY_SUFFIX)) { 调试一下
10 -
翔仔
2021-03-09
同学好,我看内容都是query请求吧 query的话走从走主都可以的吧
032021-03-09
相似问题