DataFilter数据权限bug

提问 4 1098
zklt
zklt VIP3 2021-10-22
版本:renren-security 3 开发环境:jdk8 Oracle
功能示例,新闻模块,用A创建1条数据,用B创建12条数据,因为是按时间排序,A的数据时间最早,排在最后。登录A账号,发现没有数据,列表下方显示共1条。 img[//cdn.renren.io/8ad52202110221000368512.png] 查看后台发现,查询条数使用的sql是 SELECT COUNT(*) FROM tb_news WHERE 1 = 1 AND (creator=1426107718444933122) ;查询出1条。 查分页使用的sql是 SELECT * FROM (SELECT TMP.*, ROWNUM ROW_ID FROM (SELECT * FROM tb_news WHERE 1 = 1 ORDER BY create_date DESC) TMP WHERE ROWNUM <= 10) WHERE ROW_ID > 0 AND (creator=1426107718444933122) ;查询出0条。 是因为,creator条件,不应该放在最外层,应该放在里面。 如果放在外面,是先查出日期靠前的10条,再查creator,这样就导致查不出自己创建的时间靠后的数据。
回帖
  • 这个是mybatis-plus分页插件生成的,升级一下mybatis-plus试试
    0
  • zklt
    zklt VIP3 (楼主)
    2021-10-22
    @Mark 是升级mybatis-plus的版本吗?
    0
  • zklt
    zklt VIP3 (楼主)
    2021-10-22
    @Mark mybatis-plus升级到3.4.3,发现mybatis-plus不向下兼容。
    0
  • @zklt 已修复,把mybatis-plus升级到3.4.3就可以了,更新一下代码
    0
本帖已结贴