当前使用版本(必填,否则不予处理)

mybatis-plus-boot-starter v3.5.2 dynamic-datasource-spring-boot-starter 3.5.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

使用多数据源进行数据库查询,使用lambQuery查询,只查询主库,从库不查询

重现步骤(如果有就写完整)

1、首先是配置了一主四从五个数据库,在五个数据库中都添加了同一张表,生成表的entity类、mapper类以及五个service及impl类,在impl类上用@DS来标注使用对应的数据源 2、通过service.save(entity)保存五个库的五条数据,为了标注不同,五条数据分别是主库、从库1、从库2、从库3、从库4 3、现在通过service.list(new QueryWrapper())查询所有数据,发现对应的数据库查询对应的数据,即主库查询得到的是主库结果 4、又通过service.lambdaQuery().list()查询所有数据,发现所有都是从主库查询 5、又通过lambdaQuery()i添加条件查询,仍然是从主库查询,而不是对应的数据库查询对应的数据 ` List list = userService.list(new QueryWrapper().eq("age",20)); List slave1 = user1Service.list(new QueryWrapper().eq("age",20)); List slave2 = user2Service.list(new QueryWrapper().eq("age",20)); List slave3 = user3Service.list(new QueryWrapper().eq("age",20)); List slave = user4Service.list(new QueryWrapper().eq("age",20)); ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【master】= [{"name":"主库添加","id":1588439309895610369,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【slave1】= [{"name":"从库添加1","id":1588439310126297089,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【slave2】= [{"name":"从库添加2","id":1588439310524755970,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【slave3】= [{"name":"从库添加3","id":1588439310919020545,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【slave】= [{"name":"从库添加","id":1588439311380393986,"age":20}]

List lambdaMaster = userService.lambdaQuery().eq(User::getAge,20).list(); List lambdaSlave1 = user1Service.lambdaQuery().eq(User::getAge,20).list(); List lambdaSlave2 = user2Service.lambdaQuery().eq(User::getAge,20).list(); List lambdaSlave3 = user3Service.lambdaQuery().eq(User::getAge,20).list(); List lambdaSlave = user4Service.lambdaQuery().eq(User::getAge,20).list(); ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【lambda-master】= [{"name":"主库添加","id":1588439309895610369,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【lambda-slave1】= [{"name":"主库添加","id":1588439309895610369,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【lambda-slave2】= [{"name":"主库添加","id":1588439309895610369,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【lambda-slave3】= [{"name":"主库添加","id":1588439309895610369,"age":20}] ==> Preparing: SELECT id,name,age FROM multi_user WHERE (age = ?) ==> Parameters: 20(Integer) <== Total: 1 【lambda-slave】= [{"name":"主库添加","id":1588439309895610369,"age":20}]`

报错信息

无报错信息,在类里面被try住了没有抛出

Comment From: miemieYaho

应该是 default 方法没走spring的aop自然就无法切库