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

2024-05-29 20:19:41 +08:00
 Waverly

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

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

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

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

2596 次点击
所在节点    程序员
6 条回复
Lucups
2024-05-29 20:51:55 +08:00
骚操作:为使用 PageMethod 的 SQL 手动添加 limit 123 ,然后写个优先级高于 PageMethod 的拦截器把 limit 123 过滤掉。
9dP06m83vIV00l72
2024-05-29 20:52:57 +08:00
积极沟通,酌情添加;
orioleq
2024-05-30 01:30:54 +08:00
1.把你觉得不合理的 sonar 规则去掉;
2.有个注释叫 //NOSONAR 。
yc8332
2024-05-30 08:48:22 +08:00
正常。以前的公司 mysql 不加 where limit 根本不让执行。。就怕有愣头青给你 select * from table , 大表数据库直接挂
e3c78a97e0f8
2024-05-30 12:24:28 +08:00
limit 2147483647
Waverly
2024-05-30 15:40:07 +08:00
@Lucups 是个方案🤣,可以讨论一下可行性;
@andytao 规则一刀切,没办法;
@orioleq 规则没法改变,上面规定的;//NOSONAR 只是个临时方案,目前也有在用,但期望是找到一个通用的解决方案;
@yc8332 这个也能理解,但是代码规范已经规定必须分页查询的情况下再使用这个规则多少有点不合理;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1045176

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX