V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Waverly
V2EX  ›  程序员

公司 Sonar 规则强制要求所有 select 语句添加 limit 字段

  •  
  •   Waverly · 22 天前 · 1903 次点击

    公司 sonar 规则中强制 select 语句需要加 limit ;

    但有些情况下,已经使用了 PageMethod ,在运行时会根据 pageSize 和 pageNum 使用拦截器自动拼接 limit ,这些场景下就不能手动添加 limit ;

    ps:公司不能用 mybatis plus ,但能用 mybatis

    求一个方案,又能使用 PageMethod ,又能过 Sonar 扫描

    6 条回复    2024-05-30 15:40:07 +08:00
    Lucups
        1
    Lucups  
       22 天前
    骚操作:为使用 PageMethod 的 SQL 手动添加 limit 123 ,然后写个优先级高于 PageMethod 的拦截器把 limit 123 过滤掉。
    andytao
        2
    andytao  
       22 天前
    积极沟通,酌情添加;
    orioleq
        3
    orioleq  
       21 天前 via iPhone
    1.把你觉得不合理的 sonar 规则去掉;
    2.有个注释叫 //NOSONAR 。
    yc8332
        4
    yc8332  
       21 天前
    正常。以前的公司 mysql 不加 where limit 根本不让执行。。就怕有愣头青给你 select * from table , 大表数据库直接挂
    e3c78a97e0f8
        5
    e3c78a97e0f8  
       21 天前
    limit 2147483647
    Waverly
        6
    Waverly  
    OP
       21 天前
    @Lucups 是个方案🤣,可以讨论一下可行性;
    @andytao 规则一刀切,没办法;
    @orioleq 规则没法改变,上面规定的;//NOSONAR 只是个临时方案,目前也有在用,但期望是找到一个通用的解决方案;
    @yc8332 这个也能理解,但是代码规范已经规定必须分页查询的情况下再使用这个规则多少有点不合理;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2740 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:57 · PVG 22:57 · LAX 07:57 · JFK 10:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.