【发布时间】:2017-07-15 06:36:09
【问题描述】:
在使用 jOOQ 从名为 user 的表中进行选择时,出现以下异常:
jOOQ; bad SQL grammar [insert into user (user_id, account_type) values (?, ?)]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near "user"
我的 jOOQ 设置是:
private static final Settings jooqSettings = new Settings()
.withRenderSchema(false)
.withRenderNameStyle(RenderNameStyle.LOWER);
我从中创建一个DSLContext 并在事务中构造一个查询,如下所示:
ctx.insertInto(USER)
.set(USER.USER_ID, userId)
.set(USER.ACCOUNT_TYPE, "U")
.execute()
USER 被导入为<jooq-generated-package>.tables.USER。
jOOQ 是否有一个配置属性来转义表名(所有或只是保留关键字)?我在文档或源代码中找不到任何内容。
【问题讨论】:
-
您不应该首先使用需要引用的标识符
-
这很好,但假设 1) 我有一个选择,并且 2) 我愿意为了一个与语法相关的小原因牺牲我的模型的纯度。
标签: java sql postgresql jooq