/** * Creates a new {@link N1qlQuery} for the given class, this method build a query like: * * <pre> * select b.* from bucket b where b._class = 'model.Beer' * </pre> * * @param bucket Bucket name. * @param entityClass Entity class. * @return A query. */ public static GroupByPath from(final String bucket, final Class<?> entityClass) { String alias = String.valueOf(entityClass.getSimpleName().charAt(0)); return Select.select(alias + ".*") .from(i(bucket) + " " + alias) .where(path(alias, CLASS).eq(s(entityClass.getName()))); }
/** * Returned expression results in new array with the string "value" repeated n times. */ public static Expression arrayRepeat(String value, long n) { return arrayRepeat(s(value), n); }
@Override public UpdateSetPath set(Expression path, String value) { element(new SetElement(SET_POS, path, s(value), null)); return new DefaultUpdateSetPath(this); }
@Override public InsertValuesPath values(Expression id, String value) { element(new InsertValueElement(POS, id, s(value))); return new DefaultInsertValuesPath(this); }
@Override public ReturningPath select(Expression key, String value, Statement select) { element(new InsertSelectElement(key, s(value), select)); return new DefaultReturningPath(this); }
@Override public InsertValuesPath values(String id, Expression value) { element(new InsertValueElement(POS, s(id), value)); return new DefaultInsertValuesPath(this); }
@Override public MergeUpdateSetPath set(Expression path, String value, Expression updateFor) { element(new SetElement(POS, path, s(value), updateFor)); return new DefaultMergeUpdateSetPath(this); }
@Override public InsertValuesPath values(Expression id, String value) { element(new InsertValueElement(POS, id, s(value))); return new DefaultInsertValuesPath(this); }
@Override public UpdateSetOrUnsetPath useKeysValues(String... keys) { if (keys.length == 1) { return useKeys(s(keys[0])); } return useKeys(JsonArray.from((Object[]) keys)); }
@Override public LetPath useKeysValues(String... keys) { if (keys.length == 1) { return useKeys(s(keys[0])); } return useKeys(JsonArray.from((Object[]) keys)); }
@Override public MergeUpdateSetPath set(String path, String value) { element(new SetElement(POS, x(path), s(value), null)); return new DefaultMergeUpdateSetPath(this); }
@Override public ReturningPath select(String key, String value, Statement select) { element(new InsertSelectElement(x(key), s(value), select)); return new DefaultReturningPath(this); }
@Override public MergeUpdateSetPath set(String path, String value, Expression updateFor) { element(new SetElement(POS, x(path), s(value), updateFor)); return new DefaultMergeUpdateSetPath(this); }
@Override public InsertValuesPath values(String id, JsonObject value) { element(new InsertValueElement(POS, s(id), x(value))); return new DefaultInsertValuesPath(this); }
@Override public InsertValuesPath values(String id, boolean value) { element(new InsertValueElement(POS, s(id), x(value))); return new DefaultInsertValuesPath(this); }
@Override public UpdateSetPath set(String path, String value, Expression updateFor) { element(new SetElement(POS, x(path), s(value), updateFor)); return new DefaultUpdateSetPath(this); }
@Override public InsertValuesPath values(String id, boolean value) { element(new InsertValueElement(POS, s(id), x(value))); return new DefaultInsertValuesPath(this); }
@Override public InsertValuesPath values(String id, JsonArray value) { element(new InsertValueElement(POS, s(id), x(value))); return new DefaultInsertValuesPath(this); }