有可能是DataFilterInterceptor的一个bug,请确认。

提问 9 1829
LNPC
LNPC VIP3 2019-04-20
版本:renren-security 企业版2.0 开发环境:chrome
使用DataFilter的注解时候,框架将sqlFilter封装为一个DataScope对象。 DataFilterInterceptor以我的理解是将参数中DataScope对象中sqlFilter字符串取出进行sql拼接,省去了mapper.xml中手动去对params.sqlFilter进行拼接。 但是看此段代码(DataFilterInterceptor中) img[//cdn.renren.io/59ea7201904202206267127.jpg] 被注释掉的是原来的代码,该方法无法取出所有参数,应该在key为params的map中。 不知我对该代码的理解以及修改建议是否正确,若理解有问题,请指出使用方法,谢谢。
回帖
  • 这样其实意义不大,多个参数,我们也会封装到一个key里面 可以看下DataFilterAspect
    0 回复
  • LNPC
    LNPC VIP3 (楼主)
    2019-04-22
    @Mark 那也就是说DataFilterInterceptor这个拦截器现在没什么意义了?
    0 回复
  • @LNPC 有意义啊,数据权限,就是靠这个过滤的,我是说多个参数意义不大
    0 回复
  • LNPC
    LNPC VIP3 (楼主)
    2019-04-22
    @Mark 我现在纠结的不是多个参数的问题,现在的问题是Constant.SQL_FILTER 被DataScope封装的参数,以现在的写法无法取出。
    0 回复
  • LNPC
    LNPC VIP3 (楼主)
    2019-04-22
    @Mark 换句话说,使用DataFilter之后,拦截器里经历过循环后scope对象依然是null。
    0 回复
  • @LNPC 你的意思是不会拼接SQL是吧,代码有没有做过修改呢,不应该出现这个问题
    0 回复
  • LNPC
    LNPC VIP3 (楼主)
    2019-04-22
    @Mark 没有做过修改,直接上图吧 img[//cdn.renren.io/0d5da201904221320247564.png] img[//cdn.renren.io/415fd201904221320306736.png] 以目前的循环方式无法取出被封装的DataScope对象
    0 回复
  • LNPC
    LNPC VIP3 (楼主)
    2019-04-25
    @Mark 我知道问题的所在了,原因是我在自定义分页查询的时候加了page参数,根据官方文档分页是让加这个参数,现在这个框架不需要加这个参数,仅仅是BaseServiceImpl 在getPage里把page放到了参数的map里。这是如何做到分页的呢?
    0 回复
  • @LNPC mybatis-plus支持这种写法了,只是mybatis-plus文档里没有说明,需要看下mybatis-plus源码,才知道
    0 回复