一、该问题的重现步骤是什么?
1. 配置注解,调用接口测试报错。
2. 注释注释,调用接口正常返回。
二、你期待的结果是什么?实际看到的又是什么?
能正常过滤,不报错。
过滤的语句是
@DataAuth(type = DataScopeEnum.CUSTOM, value = "WHERE scope.create_dept in (SELECT IF(LENGTH(TRIM(SUBSTRING(ancestors, 3, 19))) < 1, '${deptId}', SUBSTRING(ancestors, 3, 19)) AS dept_id FROM libra_dept WHERE id IN (${deptId}))")
报错信息是
Caused by: java.lang.NullPointerException: null
at org.springblade.system.cache.DataScopeCache.getDataScopeByMapper(DataScopeCache.java:46)
at org.springblade.system.handler.DataScopeModelHandler.getDataScopeByMapper(DataScopeModelHandler.java:23)
at org.springblade.core.datascope.handler.LibraDataScopeHandler.sqlCondition(LibraDataScopeHandler.java:32)
at org.springblade.core.datascope.interceptor.DataScopeInterceptor.intercept(DataScopeInterceptor.java:89)
at org.springblade.core.mp.plugins.QueryInterceptorExecutor.exec(QueryInterceptorExecutor.java:29)
at org.springblade.core.mp.plugins.LibraPaginationInterceptor.willDoQuery(LibraPaginationInterceptor.java:27)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:75)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy227.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
... 110 common frames omitted
Debug代码后发现,getDataScopeByMapper调用getDataScopeClient().getDataScopeByMapper每次都直接进入Fallback返回空,然后底下就会报NPE了,看system模块什么输出都没有,打的断点也没生效。
请问获取不到client是因为什么呢?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
从1.5.1升级到1.8.0,线上1.5.1是没有报错,正常运行的,看了代码变动,感觉应该也不会影响这个呀。
扫一扫访问 Blade技术社区 移动端