@PostConstruct private void postConstruct() { // Need to post-process travel data to add _class attribute List<Airline> airlinesWithoutClassAttribute = couchbaseOperations.findByN1QL(N1qlQuery.simple( // "SELECT META(`travel-sample`).id AS _ID, META(`travel-sample`).cas AS _CAS, `travel-sample`.* " + // "FROM `travel-sample` " + // "WHERE type = \"airline\" AND _class IS MISSING;"), Airline.class); airlinesWithoutClassAttribute.forEach(couchbaseOperations::save); } }
/** * Run a {@link N1qlQuery#simple(Statement)} query. * * @param statement Statement. * @param <T> Entity type. * @return A list of results. * @see N1Q#from(Class) */ default <T> Observable<List<T>> query(final Statement statement) { return query(N1qlQuery.simple(statement)); }
@PostConstruct private void postConstruct() { // Need to post-process travel data to add _class attribute CouchbaseOperations couchbaseOperations = couchbaseOperationsProvider.getIfUnique(); List<Airline> airlinesWithoutClassAttribute = couchbaseOperations.findByN1QL(N1qlQuery.simple( // "SELECT META(`travel-sample`).id AS _ID, META(`travel-sample`).cas AS _CAS, `travel-sample`.* " + // "FROM `travel-sample` " + // "WHERE type = \"airline\" AND _class IS MISSING;"), Airline.class); airlinesWithoutClassAttribute.forEach(couchbaseOperations::save); } }
@Override public long removeByPattern(String regex) throws IOException { Statement statement = Delete.deleteFromCurrentBucket().where(regexpContains("meta().id", regex)); final N1qlQueryResult result = bucket.query(N1qlQuery.simple(statement)); if (logger.isDebugEnabled()) { logger.debug("Deleted documents using regex {}, result={}", regex, result); } return result.info().mutationCount(); } }
@Test public void shouldExecuteN1ql() { getBucket().query(N1qlQuery.simple("INSERT INTO " + TEST_BUCKET + " (KEY, VALUE) VALUES ('" + ID + "', " + DOCUMENT + ")")); N1qlQueryResult query = getBucket().query(N1qlQuery.simple("SELECT * FROM " + TEST_BUCKET + " USE KEYS '" + ID + "'")); Assert.assertTrue(query.parseSuccess()); Assert.assertTrue(query.finalSuccess()); List<N1qlQueryRow> n1qlQueryRows = query.allRows(); Assert.assertEquals(1, n1qlQueryRows.size()); Assert.assertEquals(DOCUMENT, n1qlQueryRows.get(0).value().get(TEST_BUCKET).toString()); }
@After public void clear() { if (getCouchbaseContainer().isIndex() && getCouchbaseContainer().isQuery() && getCouchbaseContainer().isPrimaryIndex()) { getBucket().query( N1qlQuery.simple(String.format("DELETE FROM `%s`", getBucket().name()), N1qlParams.build().consistency(ScanConsistency.STATEMENT_PLUS))); } else { getBucket().bucketManager().flush(); } }
/** * Executes a plain un-parameterized N1QL kernelTransaction. * * @param statement the raw kernelTransaction string to execute * @return the list of {@link JsonObject}s retrieved by this query * @see N1qlQuery#simple(Statement) */ public List<JsonObject> executeStatement(String statement) { SimpleN1qlQuery query = N1qlQuery.simple(statement); return executeQuery(query); }
/** * Execute native query. * * @param n1qlQuery * the n1ql query * @param em * the entity manager * @return the list */ public List executeNativeQuery(String n1qlQuery, EntityMetadata em) { N1qlQueryResult result = bucket .query(N1qlQuery.simple(n1qlQuery, N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS))); LOGGER.debug("Executed query : " + n1qlQuery + " on the " + bucket.name() + " Bucket"); validateQueryResults(n1qlQuery, result); return result.allRows(); }
/** * Execute query. * * @param stmt * the statement * @param em * the entity manager * @return the list */ public List executeQuery(Statement stmt, EntityMetadata em) { N1qlQuery query = N1qlQuery.simple(stmt, N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS)); N1qlQueryResult list = bucket.query(query); LOGGER.debug("Executed query : " + query.toString() + " on the " + bucket.name() + " Bucket"); validateQueryResults(stmt.toString(), list); List records = new ArrayList<>(); for (N1qlQueryRow row : list) { MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata() .getMetamodel(em.getPersistenceUnit()); EntityType entityType = metaModel.entity(em.getEntityClazz()); JsonObject jsonObj = row.value().containsKey(em.getSchema()) ? row.value().getObject(em.getSchema()) : row.value(); records.add(handler.getEntityFromDocument(em.getEntityClazz(), jsonObj, entityType)); } return records; }
public static boolean fillDB(CouchbaseCluster cluster) { Bucket couchbaseBucket = cluster.openBucket(BUCKET_NAME); couchbaseBucket.insert(JsonDocument.create("artist:vincent_van_gogh", VINCENT_VAN_GOGH)); N1qlQueryResult queryResult = couchbaseBucket.query(N1qlQuery.simple(String.format(QUERY, BUCKET_NAME), N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS))); couchbaseBucket.close(); return queryResult.info().resultCount() == 1; }
/** * Create a new {@link N1qlQuery} with a plain raw statement in String form. * * @param statement the raw statement string to execute (eg. "SELECT * FROM default"). */ public static SimpleN1qlQuery simple(String statement) { return simple(new RawStatement(statement)); }
/** * Create a new {@link N1qlQuery} with a plain raw statement in {@link String} form and * custom query parameters. * * @param statement the raw statement string to execute (eg. "SELECT * FROM default"). * @param params the {@link N1qlParams query parameters}. */ public static SimpleN1qlQuery simple(String statement, N1qlParams params) { return simple(new RawStatement(statement), params); }
/** {@inheritDoc} */ @Override public Map<String, Property<?>> readAllProperties() { N1qlQuery queryFeatures = N1qlQuery.simple("SELECT * FROM " + couchBaseConnection.getFf4jPropertyBucketName()); N1qlQueryResult queryResult = getPropertyBucket().query(queryFeatures); Map<String, Property<?>> allProperties = new HashMap<>(); for (N1qlQueryRow row : queryResult.allRows()) { Property<?> p = PropertyJsonParser.parseProperty(row.value().get(couchBaseConnection.getFf4jPropertyBucketName()).toString()); allProperties.put(p.getName(), p); } return allProperties; }
private void createPrimaryIndex(Bucket bucket, CouchbaseBuildDefinition buildDefinition) { LOG.debug("Creating primary index in bucket '{}'", buildDefinition.getBucketName()); N1qlQueryResult result = bucket.query(N1qlQuery.simple( Index.createPrimaryIndex().on(bucket.name()) )); if (!result.finalSuccess()) { LOG.error("Failed to create primary index: {}", result.errors()); throw new EnvironmentBuilderException("Failed to create primary index for " + buildDefinition.getBucketName()); } LOG.debug("Primary index created in bucket '{}'", buildDefinition.getBucketName()); }
@Override public Statement getStatement(ParameterAccessor accessor, Object[] runtimeParameters, ReturnedType returnedType) { EvaluationContext evaluationContext = evaluationContextProvider.getEvaluationContext(getQueryMethod().getParameters(), runtimeParameters); String parsedStatement = queryParser.doParse(parser, evaluationContext, false); return N1qlQuery.simple(parsedStatement).statement(); }
@Override public Observable<Boolean> createN1qlPrimaryIndex(final boolean ignoreIfExist, boolean defer) { Statement createIndex; UsingWithPath usingWithPath = Index.createPrimaryIndex().on(bucket); if (defer) { createIndex = usingWithPath.withDefer(); } else { createIndex = usingWithPath; } return queryExecutor.execute(N1qlQuery.simple(createIndex), env, env.managementTimeout(), TimeUnit.MILLISECONDS) .compose(checkIndexCreation(ignoreIfExist, "Error creating primary index")); }
@Override public Observable<Boolean> createN1qlPrimaryIndex(final String customName, final boolean ignoreIfExist, boolean defer) { Statement createIndex; UsingWithPath usingWithPath = Index.createNamedPrimaryIndex(customName).on(bucket); if (defer) { createIndex = usingWithPath.withDefer(); } else { createIndex = usingWithPath; } return queryExecutor.execute(N1qlQuery.simple(createIndex), env, env.managementTimeout(), TimeUnit.MILLISECONDS) .compose(checkIndexCreation(ignoreIfExist, "Error creating custom primary index " + customName)); }
@Override public N1qlQueryResult execute(String statement) throws ResourceException { N1qlQueryResult result = this.bucket.query(N1qlQuery.simple(statement, N1qlParams.build().consistency(scanConsistency))); if (!result.finalSuccess()) { throw new ResourceException(UTIL.gs("query_error", result.errors()), result.status()); //$NON-NLS-1$ } return result; }
@Override public N1qlQueryResult execute(String statement) throws TranslatorException { N1qlQueryResult result = this.bucket.query(N1qlQuery.simple(statement, N1qlParams.build().consistency(scanConsistency))); if (!result.finalSuccess()) { TranslatorException te = new TranslatorException(UTIL.gs("query_error", result.errors())); //$NON-NLS-1$ te.setCode(result.status()); throw te; } return result; }
@After public void clear() { if (getCouchbaseContainer().isIndex() && getCouchbaseContainer().isQuery() && getCouchbaseContainer().isPrimaryIndex()) { getBucket().query( N1qlQuery.simple(String.format("DELETE FROM `%s`", getBucket().name()), N1qlParams.build().consistency(ScanConsistency.STATEMENT_PLUS))); } else { getBucket().bucketManager().flush(); } }