/** * Retrieves {@link List} of entities for a given {@link Map} of embedded * column values. Purpose of this method is to provide functionality of * search based on columns inside embedded objects. * * @param entityClass * Entity Class * @param embeddedColumnMap * Embedded column map values * @return List of found entities. */ public <E> List<E> find(Class<E> entityClass, Map<String, String> embeddedColumnMap) { EntityMetadata entityMetadata = getMetadata(entityClass); // TODO Why returning entities are not added into cache we should not // iterate here but client should i think. List<E> entities = new ArrayList<E>(); entities = getClient(entityMetadata).find(entityClass, embeddedColumnMap); return entities; }
/** * Gets the data frame to persist. * * @param query * the query * @param subQuery * the sub query * @return the data frame to persist */ private DataFrame getDataFrameToPersist(String query, String subQuery) { EntityMetadata entityMetadata = getEntityMetadata(); Client client = entityMetadata != null ? persistenceDelegeator.getClient(entityMetadata) : persistenceDelegeator.getClient(kunderaQuery.getPersistenceUnit()); return ((SparkClient) client).getDataFrame(subQuery, entityMetadata, getKunderaQuery()); }
/** * Gets the client. * * @param m * the m * @return the client */ public Client getClient(EntityMetadata m) { // // Persistence Unit used to retrieve client if (m == null) { throw new KunderaException("Entitymatadata should not be null"); } String persistenceUnit = m.getPersistenceUnit(); return getClient(persistenceUnit); }
public Object generateAndSetId(Object e, EntityMetadata m, PersistenceDelegator pd, final KunderaMetadata kunderaMetadata) { Metamodel metamodel = KunderaMetadataManager.getMetamodel(kunderaMetadata, m.getPersistenceUnit()); Client<?> client = pd.getClient(m); return generateId(e, m, client, kunderaMetadata); }
/** * Creates the query. * * @param jpaQuery * the jpa query * @return the query */ Query createQuery(String jpaQuery, final String persistenceUnit) { Client client = getClient(persistenceUnit); EntityMetadata metadata = null; try { metadata = KunderaMetadataManager.getMetamodel(kunderaMetadata, client.getPersistenceUnit()) .getEntityMetadataMap().values().iterator().next(); } catch (Exception e) { log.info("Entity metadata is null. Proceeding as Scalar Query."); } Query query = new QueryResolver().getQueryImplementation(jpaQuery, getClient(persistenceUnit) .getQueryImplementor(), this, metadata, persistenceUnit); return query; }
@Override public Iterator iterate() { if (kunderaQuery.isNative()) { throw new UnsupportedOperationException("Iteration not supported over native queries"); } EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); externalProperties = ((CassandraClientBase) client).getExternalProperties(); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over cassandra is unsupported for lucene queries"); } return new ResultIterator(this, m, persistenceDelegeator.getClient(m), this.getReader(), getFetchSize() != null ? getFetchSize() : this.maxResult, kunderaMetadata); }
@Override protected int onExecuteUpdate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); return ((HibernateClient) client).onExecuteUpdate(getJPAQuery(), getParamaters(), firstResult, maxResult); }
/** * Returns collection of fetched entities. * * @return the list */ protected List fetch() { EntityMetadata metadata = getEntityMetadata(); Client client = persistenceDelegeator.getClient(metadata); List results = isRelational(metadata) ? recursivelyPopulateEntities(metadata, client) : populateEntities( metadata, client); return results; }
@Override public Iterator iterate() { if (kunderaQuery.isNative()) { throw new UnsupportedOperationException("Iteration not supported over native queries"); } EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); externalProperties = ((CassandraClientBase) client).getExternalProperties(); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over cassandra is unsupported for lucene queries"); } return new DSResultIterator(this, m, persistenceDelegeator.getClient(m), this.getReader(), getFetchSize() != null ? getFetchSize() : this.maxResult, kunderaMetadata); }
@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); } }
public List<Object> populateUsingLucene() { return populateUsingLucene(getEntityMetadata(),persistenceDelegeator.getClient(getEntityMetadata()),new ArrayList(),new String[]{}); }
@Test public void testGetClient() { PersonnelDTO dto = new PersonnelDTO(); EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(((EntityManagerFactoryImpl)emf).getKunderaMetadataInstance(), dto.getClass()); PersistenceDelegator pd = ((EntityManagerImpl) em).getPersistenceDelegator(); Client c = pd.getClient(entityMetadata); Assert.assertNotNull(c); Assert.assertTrue(c instanceof CoreTestClient); }
/** * Gets column name for a given field name. * * @param metadata * the metadata * @param property * the property * @return the column name */ private String getColumnName(EntityMetadata metadata, String property) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(metadata.getPersistenceUnit()); String jpaColumnName = null; if (property.equals(((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName())) { jpaColumnName = CassandraUtilities.getIdColumnName(kunderaMetadata, metadata, ((CassandraClientBase) persistenceDelegeator.getClient(metadata)).getExternalProperties(), ((CassandraClientBase) persistenceDelegeator.getClient(metadata)).isCql3Enabled(metadata)); } else { jpaColumnName = ((AbstractAttribute) metaModel.getEntityAttribute(metadata.getEntityClazz(), property)) .getJPAColumnName(); } return jpaColumnName; }
@Override public Iterator iterate() { if (kunderaQuery.isNative()) { throw new UnsupportedOperationException("Iteration not supported over native queries"); } initializeReader(); EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); return new ResultIterator((HibernateClient) client, m, persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult, ((RDBMSEntityReader) getReader()).getSqlQueryFromJPA(m, m.getRelationNames(), null)); }
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); boolean useLuceneOrES = !MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata()); QueryTranslator translator = new QueryTranslator(); translator.translate(getKunderaQuery(), m, useLuceneOrES); if (useLuceneOrES && translator.isWhereOrAggregationQuery()) { throw new UnsupportedOperationException("Scrolling over hbase is unsupported for lucene or ES queries"); } List<Map<String, Object>> columns = translator.getColumnsToOutput(m, getKunderaQuery(), useLuceneOrES); return new ResultIterator((HBaseClient) client, m, persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult, translator, columns); }
@Override public Iterator iterate() { return new ResultIterator((CouchDBClient) persistenceDelegeator.getClient(getEntityMetadata()), getEntityMetadata(), persistenceDelegeator, onTranslation(getKunderaQuery().getFilterClauseQueue(), getEntityMetadata()), getFetchSize() != null ? getFetchSize() : this.maxResult); }
private void rollbackJoinTableData(PersistenceDelegator delegator) { // on deleting join table data. for (JoinTableData jtData : joinTableDataCollection) { if (jtData.isProcessed()) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(delegator.getKunderaMetadata(), jtData.getEntityClass()); Client client = delegator.getClient(m); if (OPERATION.INSERT.equals(jtData.getOperation())) { for (Object pk : jtData.getJoinTableRecords().keySet()) { client.deleteByColumn(jtData.getSchemaName(), jtData.getJoinTableName(), m.getIdAttribute() .getName(), pk); } } else if (OPERATION.DELETE.equals(jtData.getOperation())) { client.persistJoinTable(jtData); } } } joinTableDataCollection.clear(); joinTableDataCollection = null; joinTableDataCollection = new ArrayList<JoinTableData>(); }
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); if (!MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())) { throw new UnsupportedOperationException("Scrolling over hbase is unsupported for lucene queries"); } QueryTranslator translator = new QueryTranslator(); translator.translate(getKunderaQuery(), m, ((ClientBase) client).getClientMetadata()); // start with 1 as first element is alias. List<String> columns = getTranslatedColumns(m, getKunderaQuery().getResult(), 1); return new ResultIterator((HBaseClient) client, m, persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult, translator, columns); }
@Override public Iterator iterate() { EntityMetadata m = getEntityMetadata(); Client client = persistenceDelegeator.getClient(m); return new ResultIterator((MongoDBClient) client, m, createMongoQuery(m, getKunderaQuery().getFilterClauseQueue()), getOrderByClause(m), getKeys(m, getKunderaQuery().getResult()), persistenceDelegeator, getFetchSize() != null ? getFetchSize() : this.maxResult); }
/** * * @param kunderaQuery * @return */ private String parseAndCreateCqlQuery(KunderaQuery kunderaQuery, EntityManagerFactory emf, EntityManager em, String puName, Class entityClass, Integer maxResult) { Method getpd = null; try { getpd = EntityManagerImpl.class.getDeclaredMethod("getPersistenceDelegator"); } catch (Exception e) { log.error("Error during execution, Caused by : ",e.getMessage()); } getpd.setAccessible(true); PersistenceDelegator pd = getPersistenceDelegator(em, getpd); KunderaMetadata kunderaMetadata = ((EntityManagerFactoryImpl) emf).getKunderaMetadataInstance(); CassQuery query = new CassQuery(kunderaQuery, pd, kunderaMetadata); query.setMaxResults(maxResult); EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); Metamodel metaModel = KunderaMetadataManager.getMetamodel(kunderaMetadata, puName); Client<CassQuery> client = pd.getClient(metadata); String cqlQuery = query.onQueryOverCQL3(metadata, client, (MetamodelImpl) metaModel, metadata.getRelationNames()); return cqlQuery; }