/** * Checks whether a given JPA DML query is convertible to CQL. * * @param kunderaQuery * the kundera query * @return true, if is query convertible to cql */ private boolean isQueryConvertibleToCQL(KunderaQuery kunderaQuery) { EntityMetadata m = kunderaQuery.getEntityMetadata(); if (kunderaQuery.isUpdateClause() && m.isCounterColumnType()) return false; List<String> opsNotAllowed = Arrays.asList(new String[] { ">", "<", ">=", "<=" }); boolean result = false; if (!kunderaQuery.getFilterClauseQueue().isEmpty()) { String idColumn = ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(); for (Object o : kunderaQuery.getFilterClauseQueue()) { if (o instanceof FilterClause) { FilterClause filterClause = (FilterClause) o; if (!idColumn.equals(filterClause.getProperty()) || opsNotAllowed.contains(filterClause.getCondition())) { result = false; break; } result = true; } } } return result; }
Assert.assertEquals("currency = INR", kunderaQuery.getFilter()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); for (UpdateClause q : kunderaQuery.getUpdateClauseQueue()) Assert.assertEquals("currency = INR", kunderaQuery.getFilter()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertTrue(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate()); Assert.assertEquals(2, kunderaQuery.getUpdateClauseQueue().size()); Assert.assertEquals("currency = INR", kunderaQuery.getFilter()); Assert.assertNull(kunderaQuery.getResult()); Assert.assertFalse(kunderaQuery.isUpdateClause()); Assert.assertEquals(true, kunderaQuery.isDeleteUpdate());
if (!kunderaQuery.isUpdateClause())
} else { query = null; if (kunderaQuery.isUpdateClause()) { query = createUpdateQuery(kunderaQuery); } else {
if (kunderaQuery.isUpdateClause() && m.isCounterColumnType()) return false;
if (kunderaQuery.isUpdateClause())