为了账号安全,请及时绑定邮箱和手机立即绑定

多租户3.3.1.tmp删除数据没有作用

代码运行的结果:

http://img1.sycdn.imooc.com//5e3e0cfd000169ec08350291.jpg

配置文件代码:

@Bean
public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
    List<ISqlParser> sqlParserList = new ArrayList<>();
    TenantSqlParser tenantSqlParser = new TenantSqlParser();
    tenantSqlParser.setTenantHandler(new TenantHandler() {
        @Override
        public Expression getTenantId(boolean where) {
            return new LongValue(1088248166370832385L);
        }

        @Override
        public String getTenantIdColumn() {
            return "manager_id";
        }

        @Override
        public boolean doTableFilter(String tableName) {
            return "user".equals(tableName);
        }
    });
    sqlParserList.add(tenantSqlParser);
    paginationInterceptor.setSqlParserList(sqlParserList);
    return paginationInterceptor;
}

http://img1.sycdn.imooc.com//5e3e0cfd0001610607290545.jpg


正在回答

1 回答

同学,这样写,不好使是必然的。

因为你的doTableFilter方法中,把user表给过滤掉了,你写的逻辑是,如果表名等于user,则不增加租户条件。

这个方法返回false的才会增加租户条件。

        @Override        
        public boolean doTableFilter(String tableName) {           
            return "user".equals(tableName);        
        }


0 回复 有任何疑惑可以回复我~
#1

白鹿洞 提问者

这里我修改了,还是不行
2020-02-08 回复 有任何疑惑可以回复我~
#2

白鹿洞 提问者 回复 白鹿洞 提问者

可以了
2020-02-08 回复 有任何疑惑可以回复我~
#3

老猿 回复 白鹿洞 提问者

好使了就好
2020-02-08 回复 有任何疑惑可以回复我~
#4

白鹿洞 提问者

老师您好,你的视频能更随mp的版本做一个更新吗?
2020-02-08 回复 有任何疑惑可以回复我~
#5

白鹿洞 提问者

public Expression getTenantId(boolean where) { return new LongValue(1088248166370832385L); } 这个方法里面的where参数的是什么作用?
2020-02-08 回复 有任何疑惑可以回复我~
#6

老猿 回复 白鹿洞 提问者

目前还没有计划做更新,因为都是同一个大版本,主体上变化不大。
2020-02-08 回复 有任何疑惑可以回复我~
#7

老猿 回复 白鹿洞 提问者

where 参数 true 表示为 where 条件 false 表示为 insert 或者 select 条件
2020-02-08 回复 有任何疑惑可以回复我~
#8

老猿 回复 老猿

这个应该是调用的时候,如果你是insert语句,它应该给你传过来false。delete或update语句的话,给你传true。今天有点晚了,我明天试验一下,答复你。
2020-02-08 回复 有任何疑惑可以回复我~
#9

老猿 回复 白鹿洞 提问者

where参数,试验出来了,当你执行的是delete或update语句的话,where的值为true。当你执行select或insert语句的话,where的值为false。
2020-02-09 回复 有任何疑惑可以回复我~
#10

白鹿洞 提问者 回复 老猿

你好,老师能发一个例子吗?
2020-02-10 回复 有任何疑惑可以回复我~
#11

老猿 回复 白鹿洞 提问者

同学,跟你写的类似啊。网站规定课程的源代码是不提供的抱歉。
2020-02-12 回复 有任何疑惑可以回复我~
#12

白鹿洞 提问者 回复 老猿

好,我去github找个例子看一下。
2020-02-12 回复 有任何疑惑可以回复我~
查看9条回复

举报

0/150
提交
取消

多租户3.3.1.tmp删除数据没有作用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信