Search code examples
ignite

Ignite Query Exception


Im getting the following error:

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SELECT 
""standard_item_cache"".""STANDARDITEM""._KEY, 
""standard_item_cache"".""STANDARDITEM""._VAL FROM 
""standard_item_cache"".""STANDARDITEM"" WHERE ITEMID[*] == ? "; SQL statement:
SELECT "standard_item_cache"."STANDARDITEM"._KEY, 
"standard_item_cache"."STANDARDITEM"._VAL FROM 
"standard_item_cache"."STANDARDITEM" WHERE itemId == ? [42000-196]

When I try to perform a simple query:

String itemId = params.get(Params.PARAM_ITEM_ID);

SqlQuery<String, StandardItem> sql = new SqlQuery<>(StandardItem.class, "itemid == ?");

try (QueryCursor<Cache.Entry<String, StandardItem>> cursor = standardItemIgniteCache.query(sql.setArgs(itemId))) {
    logger.info("publish standard items from cache");

    for (Cache.Entry<String, StandardItem> entry : cursor) {
        logger.info("publish standard item: " + entry.getValue().toString());
    }

    logger.info("publishing standard items from cache done");

    cursor.close();
}

Where is the mistake? Im doint it exactly like it is described in the apache ignite examples: https://apacheignite.readme.io/v1.0/docs/cache-queries


Solution

  • The mistake is in this tiny string: itemid == ?.

    You used == instead of =. SQL equality operator is a single =.