carlosrmng commented on a change in pull request #156: GORA 411 - Add exists(key) to DataStore interface URL: https://github.com/apache/gora/pull/156#discussion_r280002698
########## File path: gora-ignite/src/main/java/org/apache/gora/ignite/store/IgniteStore.java ########## @@ -176,6 +176,27 @@ public boolean schemaExists() throws GoraException { } } + @Override + public boolean exists(K key) throws GoraException { + Object[] keyl = null; + if (igniteMapping.getPrimaryKey().size() == 1) { + keyl = new Object[]{key}; + } else { + //Composite key pending + } + String selectQuery = IgniteSQLBuilder.createSelectQueryExists(igniteMapping); + try (PreparedStatement stmt = connection.prepareStatement(selectQuery)) { + IgniteSQLBuilder.fillSelectQuery(stmt, igniteMapping, keyl); + ResultSet rs = stmt.executeQuery(); + rs.next(); + int resp = rs.getInt(1); Review comment: It seems that John is using a count aggregation function for counting all records which match the key. But, due that the key should be unique in the table it would be probably better to implement a select query that return a constant and check whether the resultset is empty as you suggest. Let's say. `select 1 from xxx where key = yyy` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services