jOOQ addConditions:在SQL问号中出现而不是值

And*_*rey 5 java sql jooq

我想启动简单的代码:

SelectQuery query = dsl.select(field ("id"), field("title")).from("dict.models").getQuery();
if (modelId > 0) query.addConditions(field("model_id", SQLDataType.INTEGER).equal(modelId));
Run Code Online (Sandbox Code Playgroud)

但幸运的是,getSQL()我只能看到:

select id, title from dict.models where model_id = ?
Run Code Online (Sandbox Code Playgroud)

哪里出错?

谢谢.

Luk*_*der 8

Query.getSQL()生成SQL语句,因为如果让jOOQ执行a PreparedStatement- 使用绑定变量,它将生成.绑定变量可以通过正确的顺序提取Query.getBindValues()

如果要将所有绑定值内联到生成的SQL中,则可以通过jOOQ API(所有等效项)获得各种选项: