可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17

琐碎的条件

适用于 ❌ 开源版   ✅ 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")) {
        // ..
    }
}

引用此页

反馈

您对此页面有任何反馈吗? 我们很乐意听到!

The jOOQ Logo