我已经将 jooq 与 spring 集成,对于所有类型的数据库查询(MySQL),我使用的是 spring 的 JDBC 模板。这里使用 jooq 库来生成要传递给 jdbc 模板的 sql 查询。
尽管我的其余查询工作正常,直到我向查询添加限制和/或偏移量。
我正在生成如下查询:
create.select(Factory.field("table_name"))
.from("tables t")
.where("t.table_schema LIKE '" + schemaName + "'")
.limit(10)
.offset(2)
.getSQL();
我收到如下错误:
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; 错误的 SQL 语法 [select table_name from tables t where (t.table_schema LIKE 'test') 限制?抵消 ?]; 嵌套异常是 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以获取在 '? 附近使用的正确语法。抵消 ?' 在第 1 行
这清楚地表明传递给 limit 和 offset 方法的值不会附加到查询中。
我搜索了文档,但没有找到任何其他方法来实现这一点。