私は 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 文法 [テーブル t から table_name を選択 (t.table_schema LIKE 'test') limit ? オフセット?]; ネストされた例外は com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException です: SQL 構文にエラーがあります。near '? を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。オフセット?' 1行目
limit および offset メソッドに渡された値がクエリに追加されないことは明らかです。
ドキュメントを検索しましたが、これを達成する他の方法は見つかりませんでした。