/** * Returns entity metadata, in case of native query mapped class is present * within application metadata. * * @return entityMetadata entity metadata. */ protected EntityMetadata getEntityMetadata() { return kunderaQuery.getEntityMetadata(); }
String idColumnName = ((AbstractAttribute) kunderaQuery.getEntityMetadata().getIdAttribute()) .getJPAColumnName(); sb.append(idColumnName).append(":").append("*");
@Override public List<?> getResultList() { if (log.isDebugEnabled()) log.debug("JPA Query: " + getJPAQuery()); // get luence query String q = luceneQuery; if (null == q) { q = KunderaCoreUtils.getLuceneQueryFromJPAQuery(kunderaQuery, kunderaMetadata); } if (log.isDebugEnabled()) log.debug("Lucene Query: " + q); EntityMetadata m = kunderaQuery.getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); handlePostEvent(); Map<String, Object> searchFilter = client.getIndexManager().search(m.getEntityClazz(), q, -1, maxResult); if (kunderaQuery.isAliasOnly()) { String[] primaryKeys = searchFilter.values().toArray(new String[] {}); return persistenceDelegeator.find(m.getEntityClazz(), primaryKeys); } else { return persistenceDelegeator.find(m.getEntityClazz(), searchFilter); } }
/** * 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; }
/** * Create Delete query from a given JPA query. * * @param kunderaQuery * the kundera query * @return the string */ public String createDeleteQuery(KunderaQuery kunderaQuery) { EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); CQLTranslator translator = new CQLTranslator(); String delete_query = translator.DELETE_QUERY; String tableName = kunderaQuery.getEntityMetadata().getTableName(); delete_query = StringUtils.replace(delete_query, CQLTranslator.COLUMN_FAMILY, translator.ensureCase(new StringBuilder(), tableName, false).toString()); StringBuilder builder = new StringBuilder(delete_query); builder.append(CQLTranslator.ADD_WHERE_CLAUSE); Class compoundKeyClass = metadata.getIdAttribute().getBindableJavaType(); EmbeddableType compoundKey = null; String idColumn; if (metaModel.isEmbeddable(compoundKeyClass)) { compoundKey = metaModel.embeddable(compoundKeyClass); idColumn = ((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName(); } else { idColumn = ((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName(); } onCondition(metadata, metaModel, compoundKey, idColumn, builder, false, translator, false); return builder.toString(); }
EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit());
m = kunderaQuery.getEntityMetadata();
EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit());
Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNotNull(kunderaQuery.getFilter()); Assert.assertFalse(kunderaQuery.getFilterClauseQueue().isEmpty());
Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty());
/** * Create Delete query from a given JPA query * * @param kunderaQuery * @return */ public String createDeleteQuery(KunderaQuery kunderaQuery) { EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) KunderaMetadata.INSTANCE.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit()); CQLTranslator translator = new CQLTranslator(); String delete_query = translator.DELETE_QUERY; String tableName = kunderaQuery.getEntityMetadata().getTableName(); delete_query = StringUtils.replace(delete_query, CQLTranslator.COLUMN_FAMILY, translator.ensureCase(new StringBuilder(), tableName, false).toString()); StringBuilder builder = new StringBuilder(delete_query); builder.append(CQLTranslator.ADD_WHERE_CLAUSE); buildWhereClause(kunderaQuery, metadata, metaModel, translator, builder); return builder.toString(); }
Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(CassandraUUIDEntity.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata( ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance(), CassandraUUIDEntity.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(CassandraUUIDEntity.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata( ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance(), CassandraUUIDEntity.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty());
Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty()); Assert.assertNotNull(kunderaQuery.getEntityClass()); Assert.assertEquals(Person.class, kunderaQuery.getEntityClass()); Assert.assertNotNull(kunderaQuery.getEntityMetadata()); Assert.assertTrue(KunderaMetadataManager.getEntityMetadata(kunderaMetadata, Person.class).equals( kunderaQuery.getEntityMetadata())); Assert.assertNull(kunderaQuery.getFilter()); Assert.assertTrue(kunderaQuery.getFilterClauseQueue().isEmpty());
String idColumnName = ((AbstractAttribute) kunderaQuery.getEntityMetadata().getIdAttribute()) .getJPAColumnName(); sb.append(idColumnName).append(":").append("*");
EntityMetadata metadata = kunderaQuery.getEntityMetadata(); MetamodelImpl metaModel = (MetamodelImpl) KunderaMetadata.INSTANCE.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit());
EntityMetadata m = kunderaQuery.getEntityMetadata(); if (kunderaQuery.isUpdateClause() && m.isCounterColumnType()) return false;