RuoYi若依框架数据权限@DataScope使用问题
根据若依后台手册给出的示例,编写如下代码
<select id="getList" resultType="tech.pmman.system.model.db.Manufacturer">
select * from manufacturer ${params.dataScope}
</select>
Mapper xml
@Mapper
public interface ManufacturerMapper extends BaseMapper<Manufacturer> {
List<Manufacturer> getList();
}
Mapper方法
@DataScope(deptAlias = "d", userAlias = "u")
public PageRes<ManufacturerRes> getManufacturerList(int pageNum, int pageSize) {
...
}
Service方法
public class Manufacturer extends BaseEntity {
...
}
实体类
此时执行service方法,会发现mybatis报错无法获取到parms。
根据若依开发者的解释,方法必须传入继承BaseEntity的对象,否则无法拼接得到params.dataScope,即使方法不需要传入参数,也必须至少构造一个空对象传入。
@DataScope(deptAlias = "d", userAlias = "u")
public PageRes<ManufacturerRes> getManufacturerList(Manufacturer param, int pageNum, int pageSize) {
...
}
@Mapper
public interface ManufacturerMapper extends BaseMapper<Manufacturer> {
List<Manufacturer> getList(Manufacturer param);
}
这里我们创建一个对应返回类型的形参,在调用时new一个空对象传入即可正常使用。
License:
CC BY 4.0