SqlQuery在Ignite 2.0.0中引发异常

SqlQuery在Ignite 2.0.0中引发异常,ignite,Ignite,我刚刚升级到V2.0.0,并尝试了以下代码 SqlQuery diffSql = new SqlQuery(PendingAvGroup.class, " from PendingAvGroup as pnd " + "where not exists(select 1 from " + "\"Processed_PendingAvGroup_cache\".PendingAvGroup prc " + " WHERE prc.resourceGroup

我刚刚升级到V2.0.0,并尝试了以下代码

SqlQuery diffSql = new SqlQuery(PendingAvGroup.class,
     " from PendingAvGroup as pnd  " +
     "where not exists(select 1 from " +
     "\"Processed_PendingAvGroup_cache\".PendingAvGroup prc " +
     " WHERE prc.resourceGroupId = pnd.resourceGroupId)"
     );
但是我得到了以下错误

由以下原因引起:org.h2.jdbc.JdbcSQLException:未找到列挂起_PendingAvGroup_cache.PendingAvGroup._键; SQL语句: 选择Pending_PendingAvGroup_cache.PendingAvGroup._key,Pending_PendingAvGroup_cache.PendingAvGroup._valfrom PendingAvGroup as pnd where not exists从Processed_PendingAvGroup_cache.PendingAvGroup prc where prc.resourcegroup id=pnd.resourcegroup id[42122-195] 在org.h2.message.DbException.getJdbcSQLExceptionDbException.java:345~[h2-1.4.195.jar:1.4.195]

似乎每当我提供FROM子句时,我都会得到“.\u KEY not found;”错误即使是一张桌子

我非常感谢任何人在这方面的帮助。。 谢谢
Paul

这实际上是SQL的一个奇怪的东西,我不确定它是一个标准还是仅仅是H2。默认情况下,Ignite在select子句Pending_PendingAvGroup_cache.PendingAvGroup中使用原始表名生成查询,但它必须实际使用别名pnd

要解决此问题,必须在SqlQuery上设置别名,Ignite将生成正确的查询:

SqlQuery diffSql=新的SqlQueryPendingAvGroup.class,…setAliaspnd

另一个选项是使用SqlFieldsQuery:

新建SqlFieldsQueryselect _键,_valfrom