我在 Java 应用程序的持久层中使用 Framework Jooq,我希望允许在特定上下文中通过 plain SQL API 创建特定选择查询的部分条件。组成普通 SQL 部分的字符串将在运行时的某个点保存,并且查询将在稍后的时间点通过后台作业执行。
有没有一种方法可以验证 Jooq 查询是否可以在不实际执行的情况下无错误地执行?例如,我发现
ctx.explain(query)
我可以使用它作为解决方法,但实际上我不想执行解释。有没有替代方案?
非常感谢。
这里还有一些其他可能就足够的“技巧”:
SELECT
查询,您可以将它们包装在 SELECT * FROM (...) t WHERE false
等派生表中。这可能有助于覆盖 95% 的所有语法,并且大多数优化器应该足够聪明,可以避免运行派生表(请检查)。一些注意事项:
FOR UPDATE
子句和其他类似 SELECT
功能无法以这种方式工作