一、该问题的重现步骤是什么?
加数据权限前,执行的sql如下:
SELECT a.*, tbau.unit_name AS accounting_unit_name, bu.real_name AS area_manager_name FROM t_tracking_report a LEFT JOIN t_base_accounting_unit tbau ON a.accounting_unit_id = tbau.id LEFT JOIN blade_user bu ON a.area_manager_id = bu.id WHERE a.is_deleted = 0 AND a.tenant_id = '999999' ORDER BY a.update_time DESC, a.create_time DESC LIMIT 10
加了数据权限@DataAuth注解后,执行的sql如下:
@DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
SELECT * FROM ( SELECT a.*, tbau.unit_name AS accounting_unit_name, bu.real_name AS area_manager_name FROM t_tracking_report a LEFT JOIN t_base_accounting_unit tbau ON a.accounting_unit_id = tbau.id LEFT JOIN blade_user bu ON a.area_manager_id = bu.id WHERE a.is_deleted = 0 AND a.tenant_id = '999999' ORDER BY a.update_time DESC, a.create_time DESC ) scope WHERE scope.create_dept IN (1907273787702034434) LIMIT 10
二、你期待的结果是什么?实际看到的又是什么?
期待:加上数据权限后可以正常分页查询
实际:加了数据权限后会变成嵌套查询使内部查询的sql分页失效,导致全表查询。数据量大了查询会超时,导致页面永远加载不出来数据。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
Bladex4.2.0
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
扫一扫访问 Blade技术社区 移动端