【发布时间】:2012-07-07 20:00:16
【问题描述】:
代码
QueryBuilder<MyClass, String> builder = mnDao.queryBuilder();
builder.where().eq("`GROUP`", someGroup));
抛出异常
“表 MyClassTable 中的未知列名 '`GROUP`'”
我尝试使用 UpdateBuilder 中的 escapeColumnName(),但结果是一样的。 我可以使用原始查询,但它们不安全,因为它们不提供占位符。
数据库是H2。
它看起来像 ormlite 中的一个错误。 有什么建议吗?
【问题讨论】:
-
"\"GROUP\""怎么样,因为名称在 H2 中是这样引用的? BTW"GROUP"试过了吗? -
@JoopEggen 只是为了确保我已经尝试过 "\"GROUP\"" - 没办法。 “GROUP”也不起作用。
-
最简单的解决方法可能是将列名更改为不是 SQL 中的关键字。
-
@DonRoby 你是天才!我认为 sql 'ALTER TABLE "MyClassTable" ALTER COLUMN
GROUPRENAME TO GROUP1' 是不可能的,但它确实有效。请将其发布为答案。
标签: java sql h2 ormlite query-builder