@Override public void registerTable(EntityMetadata m, SparkClient sparkClient) { sparkClient.sqlContext.sql("use " + m.getSchema()); }
@Override public void unIndex(Class entityClazz, Object entity, EntityMetadata metadata, MetamodelImpl metamodelImpl) { Object id = PropertyAccessorHelper.getId(entity, metadata); DeleteResponse response = client .prepareDelete(metadata.getSchema().toLowerCase(), entityClazz.getSimpleName(), id.toString()).execute() .actionGet(); }
private SequenceGeneratorDiscriptor processSequenceGenerator(Class<?> clazz, Field idField, EntityMetadata m, String generatorName) { SequenceGeneratorDiscriptor sgd = null; if (!generatorName.isEmpty()) { SequenceGenerator sequenceGenerator = idField.getAnnotation(SequenceGenerator.class); if (sequenceGenerator == null || !sequenceGenerator.name().equals(generatorName)) { sequenceGenerator = clazz.getAnnotation(SequenceGenerator.class); } sgd = new SequenceGeneratorDiscriptor(sequenceGenerator, m.getSchema()); } else { sgd = new SequenceGeneratorDiscriptor(m.getSchema()); } return sgd; }
/** * On query. */ private void onQuery() { try { _id = CouchDBConstants.URL_SEPARATOR + m.getSchema() + CouchDBConstants.URL_SEPARATOR + "_design/" + m.getTableName() + "/_view/"; _id = client.createQuery(interpreter, m, q, _id); if (!q.toString().isEmpty()) { q.append("&"); } q.append("limit=" + 1); } catch (Exception e) { } }
public Object next(EntityMetadata m) { Object entity = null; HBaseData result = ((HBaseReader) hbaseReader).next(); List<HBaseData> results = new ArrayList<HBaseData>(); List output = new ArrayList(); results.add(result); try { output = onRead(m.getSchema(), m.getEntityClazz(), m, output, gethTable(m.getSchema()), entity, m.getRelationNames(), results); } catch (IOException e) { log.error("Error during finding next record, Caused by: .", e); throw new KunderaException(e); } return output != null && !output.isEmpty() ? output.get(0) : output; }
@Override public List<Object> findByRelation(String colName, Object colValue, Class entityClazz) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClazz); Object[] ids = findIdsByColumn(m.getSchema(), m.getTableName(), ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(), colName, colValue, m.getEntityClazz()); List<Object> resultSet = new ArrayList<Object>(); if (ids != null) { for (Object id : new HashSet(Arrays.asList(ids))) { Object object = find(entityClazz, id); if (object != null) { resultSet.add(object); } } } return resultSet; }
@Override protected void onPersist(EntityMetadata entityMetadata, Object entity, Object id, List<RelationHolder> relations) { String tableName = HBaseUtils.getHTableName(entityMetadata.getSchema(), entityMetadata.getTableName()); try { handler.writeData(tableName, entityMetadata, entity, id, relations, showQuery); } catch (IOException e) { throw new PersistenceException(e); } }
/** * Checks whether Inverted indexing is applicable for a given entity whose * metadata is passed as parameter * * @param m * @return */ public static boolean isInvertedIndexingApplicable(EntityMetadata m, boolean useSecondryIndex) { boolean invertedIndexingApplicable = useSecondryIndex && CassandraPropertyReader.csmd.isInvertedIndexingEnabled(m.getSchema()) && m.getType().isSuperColumnFamilyMetadata() && !m.isCounterColumnType(); return invertedIndexingApplicable; }
@Override protected void delete(Object entity, Object pKey) { EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); r.db(entityMetadata.getSchema()).table(entityMetadata.getTableName()).get(pKey).delete().run(connection); }
@Override public List<Object> findByRelation(String colName, Object colValue, Class entityClazz) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClazz); String tableName = HBaseUtils.getHTableName(m.getSchema(), m.getTableName()); String columnFamilyName = m.getTableName(); byte[] valueInBytes = HBaseUtils.getBytes(colValue); SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes(columnFamilyName), Bytes.toBytes(colName), CompareOp.EQUAL, valueInBytes); filter.setFilterIfMissing(true); try { return ((HBaseDataHandler) handler).readData(tableName, m, null, null, null, null, getFilterList(filter)); } catch (IOException ex) { log.error("Error during find By Relation, Caused by: .", ex); throw new KunderaException("Error during find By Relation, Caused by: .", ex); } }
@Override protected void onPersist(EntityMetadata entityMetadata, Object entity, Object id, List<RelationHolder> rlHolders) { if (!isUpdate) { r.db(entityMetadata.getSchema()).table(entityMetadata.getTableName()) .insert(populateRmap(entityMetadata, entity)).run(connection); } else { r.db(entityMetadata.getSchema()).table(entityMetadata.getTableName()) .update(populateRmap(entityMetadata, entity)).run(connection); } }
@Override public void delete(Object entity, Object rowKey) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( m.getPersistenceUnit()); if (metaModel.isEmbeddable(m.getIdAttribute().getBindableJavaType())) { rowKey = KunderaCoreUtils.prepareCompositeKey(m, rowKey); } deleteByColumn(m.getSchema(), m.getTableName(), null, rowKey); }
@Override public Object find(Class entityClass, Object key) { EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); Object e = r.db(entityMetadata.getSchema()).table(entityMetadata.getTableName()).get(key).run(connection, entityClass); PropertyAccessorHelper.setId(e, entityMetadata, key); return e; }
@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 void delete(Object entity, Object pKey) { if (entity == null) return; EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); DummySchema schema = DummyDatabase.INSTANCE.getSchema(m.getSchema()); if (schema == null) return; DummyTable table = schema.getTable(m.getTableName()); if (table == null) return; table.removeRecord(pKey); }
@Override public void delete(Object entity, Object pKey) { if (entity == null) return; EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); DummySchema schema = DummyDatabase.INSTANCE.getSchema(m.getSchema()); if (schema == null) return; DummyTable table = schema.getTable(m.getTableName()); if (table == null) return; table.removeRecord(pKey); }
@Override public Object find(Class entityClass, Object key) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); DummySchema schema = DummyDatabase.INSTANCE.getSchema(m.getSchema()); if (schema == null) return null; DummyTable table = schema.getTable(m.getTableName()); if (table == null) return null; return table.getRecord(key); }
@Override public void delete(Object entity, Object pKey) { EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entity.getClass()); MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata().getMetamodel( metadata.getPersistenceUnit()); AbstractManagedType managedType = (AbstractManagedType) metaModel.entity(metadata.getEntityClazz()); List<String> secondaryTables = ((DefaultEntityAnnotationProcessor) managedType.getEntityAnnotation()) .getSecondaryTablesName(); secondaryTables.add(metadata.getTableName()); if (metaModel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType())) { pKey = KunderaCoreUtils.prepareCompositeKey(metadata, pKey); } for (String colTableName : secondaryTables) { deleteByColumn(metadata.getSchema(), colTableName, ((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName(), pKey); } }
@Override public Object find(Class entityClass, Object key) { EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClass); DummySchema schema = DummyDatabase.INSTANCE.getSchema(m.getSchema()); if (schema == null) return null; DummyTable table = schema.getTable(m.getTableName()); if (table == null) return null; return table.getRecord(key); }
@Override public boolean persist(List listEntity, EntityMetadata m, SparkClient sparkClient) { try { Seq s = scala.collection.JavaConversions.asScalaBuffer(listEntity).toList(); ClassTag tag = scala.reflect.ClassTag$.MODULE$.apply(m.getEntityClazz()); JavaRDD personRDD = sparkClient.sparkContext.parallelize(s, 1, tag).toJavaRDD(); CassandraJavaUtil.javaFunctions(personRDD) .writerBuilder(m.getSchema(), m.getTableName(), CassandraJavaUtil.mapToRow(m.getEntityClazz())) .saveToCassandra(); return true; } catch (Exception e) { throw new KunderaException("Cannot persist object(s)", e); } }