/** * Gets the kundera id. * * @param metadata * the metadata * @param id * the id * * @return the kundera id */ protected String getKunderaId(EntityMetadata metadata, Object id) { return metadata.getEntityClazz().getCanonicalName() + IndexingConstants.DELIMETER + id; }
@Override public E next() { if (fetchSize <= 0 || count > fetchSize || scrollComplete) { throw new NoSuchElementException("Nothing to scroll further for:" + m.getEntityClazz()); } else { E objectToReturn = currentObject; currentObject = null; return objectToReturn; } }
@Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append(this.entityMetadata.getEntityClazz().getName() + "." + method.getName()); return builder.toString(); } }
@Override public final void update(EntityMetadata metadata, final MetamodelImpl metaModel, Object entity, Object id, String parentId) { if (log.isDebugEnabled()) { log.debug("Updating @Entity[{}] for key:{}", metadata.getEntityClazz().getName(), id); } updateDocument(metadata, metaModel, entity, parentId, entity.getClass(), true); }
/** * @param entityClassName * @param em * @return */ public static String buildOutput(Class<?> entityClass, EntityMetadata entityMetadata, Object output) { StringBuilder sb = new StringBuilder("'"); sb.append("{\"").append(entityClass.getSimpleName().toLowerCase()).append("\":").append(output) .append(",\"entityClassName\":\"").append(entityMetadata.getEntityClazz().getSimpleName()) .append("\",\"id\":\"" + entityMetadata.getIdAttribute().getName()).append("\"}").append("'"); return sb.toString(); }
/** * Populate gfs entity. * * @param entityMetadata * the entity metadata * @param entities * the entities * @param gfsDBFile * the gfs db file */ private void populateGFSEntity(EntityMetadata entityMetadata, List entities, GridFSDBFile gfsDBFile) { Object entity = instantiateEntity(entityMetadata.getEntityClazz(), null); handler.getEntityFromGFSDBFile(entityMetadata.getEntityClazz(), entity, entityMetadata, gfsDBFile, kunderaMetadata); entities.add(entity); }
@Override public E next() { if (current != null && checkOnEmptyResult() && current.equals(results.get(results.size() - 1))) { hasNext(); } if (scrollComplete) { throw new NoSuchElementException("Nothing to scroll further for:" + entityMetadata.getEntityClazz()); } E lastFetchedEntity = getEntity(results.get(results.size() - 1)); start = lastFetchedEntity != null ? idValueInByteArr() : null; current = getEntity(results.get(results.size() - 1)); return current; }
@Override protected List<Object> recursivelyPopulateEntities(EntityMetadata m, Client client) { List<EnhanceEntity> ls = new ArrayList<EnhanceEntity>(); RedisQueryInterpreter interpreter = onTranslation(getKunderaQuery().getFilterClauseQueue(), m); ls = ((RedisClient) client).onExecuteQuery(interpreter, m.getEntityClazz()); return setRelationEntities(ls, client, m); }
/** * Find GFS entity. * * @param entityMetadata * the entity metadata * @param entityClass * the entity class * @param key * the key * @return the object */ private Object findGFSEntity(EntityMetadata entityMetadata, Class entityClass, Object key) { GridFSDBFile outputFile = findGridFSDBFile(entityMetadata, key); return outputFile != null ? handler.getEntityFromGFSDBFile(entityMetadata.getEntityClazz(), instantiateEntity(entityClass, null), entityMetadata, outputFile, kunderaMetadata) : null; }
@Override protected List findUsingLucene(EntityMetadata m, Client client) { RedisQueryInterpreter interpreter = onTranslation(getKunderaQuery().getFilterClauseQueue(), m); return ((RedisClient) client).onExecuteQuery(interpreter, m.getEntityClazz()); }
@Override protected List findUsingLucene(EntityMetadata m, Client client) { OracleNoSQLQueryInterpreter interpreter = translateQuery(getKunderaQuery().getFilterClauseQueue(), m); return ((OracleNoSQLClient) client).executeQuery(m.getEntityClazz(), interpreter, null); }
/** * @param entityClassName * @param em * @return */ public static AbstractManagedType getEntityManagedType(String entityClassName, EntityManager em) { MetamodelImpl metamodel = (MetamodelImpl) em.getEntityManagerFactory().getMetamodel(); Class<?> entityClass = metamodel.getEntityClass(entityClassName); EntityMetadata entityMetadata = metamodel.getEntityMetadata(entityClass); AbstractManagedType managedType = (AbstractManagedType) metamodel.entity(entityMetadata.getEntityClazz()); return managedType; }
@Override public void delete(Object entity, Object pKey) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(m.getEntityClazz()); // For secondary tables. List<String> secondaryTables = ((DefaultEntityAnnotationProcessor) managedType.getEntityAnnotation()).getSecondaryTablesName(); secondaryTables.add(m.getTableName()); for (String tableName : secondaryTables) { this.execute(onDeleteQuery(m, tableName, metaModel, pKey), null); } }
@Override public JsonDocument getDocumentFromEntity(EntityMetadata entityMetadata, Object entity, KunderaMetadata kunderaMetadata) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata() .getMetamodel(entityMetadata.getPersistenceUnit()); Class entityClazz = entityMetadata.getEntityClazz(); EntityType entityType = metaModel.entity(entityClazz); Set<Attribute> attributes = entityType.getAttributes(); Iterator<Attribute> iterator = attributes.iterator(); JsonObject obj = iterateAndPopulateJsonObject(entity, iterator, entityMetadata.getTableName()); Object id = PropertyAccessorHelper.getId(entity, entityMetadata); return JsonDocument.create(entityMetadata.getTableName() + CouchbaseConstants.ID_SEPARATOR + id.toString(), obj); }
@Override protected List findUsingLucene(EntityMetadata m, Client client) { QueryTranslator translator = new QueryTranslator(); translator.translate(getKunderaQuery(), m, ((ClientBase) client).getClientMetadata()); List<String> columns = getTranslatedColumns(m, getKunderaQuery().getResult(), 1); return ((HBaseClient) client).findByRange(m.getEntityClazz(), m, translator.getStartRow(), translator .getEndRow(), columns.toArray(new String[columns.size()]), null, getKunderaQuery() .getFilterClauseQueue()); }
@Override protected void onPersist(EntityMetadata entityMetadata, Object entity, Object id, List<RelationHolder> rlHolders) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( entityMetadata.getPersistenceUnit()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(entityMetadata.getEntityClazz()); if (managedType.hasLobAttribute()) { onPersistGFS(entity, id, entityMetadata, isUpdate); } else { Map<String, List<DBObject>> collections = new HashMap<String, List<DBObject>>(); collections = onPersist(collections, entity, id, entityMetadata, rlHolders, isUpdate); onFlushCollection(collections); } }
@Override public void registerTable(EntityMetadata m, SparkClient sparkClient) { SparkContextJavaFunctions functions = CassandraJavaUtil.javaFunctions(sparkClient.sparkContext); Class clazz = m.getEntityClazz(); JavaRDD cassandraRowsRDD = functions.cassandraTable(m.getSchema(), m.getTableName(), CassandraJavaUtil.mapRowTo(clazz)); sparkClient.sqlContext.createDataFrame(cassandraRowsRDD, clazz).registerTempTable(m.getTableName()); }
@Override public Object find(Class entityClass, Object key) { EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( entityMetadata.getPersistenceUnit()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(entityMetadata.getEntityClazz()); return managedType.hasLobAttribute() ? findGFSEntity(entityMetadata, entityClass, key) : find(entityClass, key, entityMetadata, metaModel, managedType); }
@Override protected List<Object> populateEntities(EntityMetadata m, Client client) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( m.getPersistenceUnit()); EntityType entity = metaModel.entity(m.getEntityClazz()); Expression whereExpression = KunderaQueryUtils.getWhereClause(kunderaQuery.getJpqlExpression()); QueryBuilder filter = whereExpression == null || whereExpression instanceof NullExpression ? null : esFilterBuilder.populateFilterBuilder(((WhereClause) whereExpression).getConditionalExpression(), m); return ((ESClient) client).executeQuery(filter, buildAggregation(kunderaQuery, m, filter), m, getKunderaQuery(),this.firstResult, this.maxResult); }
protected List findUsingLucene(EntityMetadata m, Client client) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel(m.getPersistenceUnit()); boolean useInvertedIndex = CassandraIndexHelper.isInvertedIndexingApplicable(m, MetadataUtils.useSecondryIndex(((ClientBase) client).getClientMetadata())); Map<Boolean, List<IndexClause>> ixClause = prepareIndexClause(m, useInvertedIndex); List<Object> result = new ArrayList<Object>(); if (((CassandraClientBase) client).isCql3Enabled(m)) { result = ((CassandraClientBase) client).executeQuery(m.getEntityClazz(), m.getRelationNames(), false, onQueryOverCQL3(m, client, metaModel, m.getRelationNames())); } else { result = ((CassandraEntityReader) getReader()).handleFindByRange(m, client, result, ixClause, true, getColumnList(m, metaModel, getKunderaQuery().getResult(), null), isSingleResult ? 1 : this.maxResult); } return result; }