琐碎的条件
适用于 ❌ 开源版 ✅ 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")) {
// ..
}
}
反馈
您对此页面有任何反馈吗? 我们很乐意听到!