琐碎的条件
适用于 ❌ 开源版 ✅ Express 版 ✅ 专业版 ✅ 企业版
处理这些事件的 SPI 方法是 trivialCondition()
。此诊断取决于 转换模式特性。
此问题出现在 JDBC、jOOQ 或任何 ORM 中。任意复杂度的谓词有时可以简化为简单的 TRUE 或 FALSE 条件。
为什么这不好?
平凡条件对您的应用程序不利,原因有很多
- 它可能只是一个拼写错误(例如,
JOIN
谓词的形式为A.ID = A.ID
而不是A.ID = B.ID
),如果是这种情况,那么它就是错误的。 - 冗余谓词可能是 重复语句 的一个潜在原因。
这里给出了一个例子
// A custom DiagnosticsListener SPI implementation class TrivialCondition implements DiagnosticsListener { @Override public void trivialCondition(DiagnosticsContext ctx) { System.out.println("Trivial condition: " + ctx.part()); } }
然后
// Configuration is configured with the target DataSource, SQLDialect, etc. for instance Oracle. try (Connection c = DSL.using(configuration.derive(new TrivialCondition())) .diagnosticsConnection(); Statement s = c.createStatement()) { try (ResultSet rs = s.executeQuery("SELECT * FROM author WHERE id = id")) { // .. } }
反馈
您对此页面有任何反馈吗? 我们很乐意听到!