若依框架中@DataScope数据权限注解的使用与自定义sql语句。
介绍
若依框架本身具有角色、部门、用户业务。 在业务中,用户必须绑定一个角色,而角色又必须将自身绑定到部门,角色绑定了哪些部门,就决定着隶属于该角色的用户能对哪些部门数据进行增删改。 那么,怎么实现让用户只能遵循其绑定角色所指定的部门,来进行数据范围控制呢? 一般情况下,假如我们对一张表要进行查询或更新的话,需要在sql语句中,where条件语法后面 加上 dept.id = {currentDeptId} 来进行过滤, 例如下面的sql语句:
select * from sys_user
where dept_id = {currentUserDeptId}
但是,在若依框架中,我们只需要在Service层的方法上加入@DataScope
注解, 并分别通过deptAlias和userAlias属性,指定出部门表和用户表在sql语句中的别名是什么的话, 就不需要我们手动在sql语句后面加上过滤条件了。 。
使用
下面,我们通过演示,来介绍如何使用@DataScope注解。 1.首先,我们有一个部门表的实体类,叫SysDept。并且,它还必须继承了BaseEntity这个类。