/** * Create a new Template expression * * @param template template * @param args template parameters * @return template expression */ public static StringTemplate stringTemplate(Template template, Object... args) { return stringTemplate(template, ImmutableList.copyOf(args)); }
/** * Create a new Template expression * * @param template template * @param args template parameters * @return template expression */ public static StringTemplate stringTemplate(String template, List<?> args) { return stringTemplate(createTemplate(template), args); }
/** * Create a new Template expression * * @param template template * @param args template parameters * @return template expression */ public static StringTemplate stringTemplate(String template, Object... args) { return stringTemplate(createTemplate(template), ImmutableList.copyOf(args)); }
/** * Create a new Template expression * * @deprecated Use {@link #stringTemplate(String, List)} instead. * * @param template template * @param args template parameters * @return template expression */ @Deprecated public static StringTemplate stringTemplate(String template, ImmutableList<?> args) { return stringTemplate(createTemplate(template), args); }
@Test public void stringTemplate() { assertEquals("X", Expressions.stringTemplate("X").toString()); }
@Test public void templateExpression() { Expression<String> str = Expressions.stringPath(ExpressionUtils.path(Object.class, "customer"), "name"); Expression<String> str2 = Expressions.stringPath("str"); Expression<String> concat = Expressions.stringTemplate("{0} + {1}", str, str2); assertEquals("customer.name + str", concat.toString()); assertEquals("customer_.name + str_", concat.accept(visitor, null).toString()); } }
@Test public void factoryMethods() { String template = ""; Expression<Boolean> arg = ConstantImpl.create(true); Expressions.booleanTemplate(template, arg); Expressions.comparableTemplate(String.class, template, arg); Expressions.dateTemplate(Date.class, template, arg); Expressions.dateTimeTemplate(Date.class, template, arg); Expressions.enumTemplate(PropertyType.class, template, arg); Expressions.numberTemplate(Integer.class, template, arg); Expressions.template(Object.class, template, arg); Expressions.stringTemplate(template, arg); Expressions.timeTemplate(Time.class, template, arg); }
@Test public void factoryMethods2() { Template template = TemplateFactory.DEFAULT.create(""); Expression<Boolean> arg = ConstantImpl.create(true); Expressions.booleanTemplate(template, arg); Expressions.comparableTemplate(String.class, template, arg); Expressions.dateTemplate(Date.class, template, arg); Expressions.dateTimeTemplate(Date.class, template, arg); Expressions.enumTemplate(PropertyType.class, template, arg); Expressions.numberTemplate(Integer.class, template, arg); Expressions.template(Object.class, template, arg); Expressions.stringTemplate(template, arg); Expressions.timeTemplate(Time.class, template, arg); } }
/** * Create a new Template expression * * @param template template * @param args template parameters * @return template expression */ public static StringTemplate stringTemplate(Template template, Object... args) { return stringTemplate(template, ImmutableList.copyOf(args)); }
@Nonnull protected StringTemplate toChar(QVariableInstanceEntity var) { return Expressions.stringTemplate(toCharTemplate, var.value); } }
/** * Create a new Template expression * * @param template template * @param args template parameters * @return template expression */ public static StringTemplate stringTemplate(String template, Object... args) { return stringTemplate(createTemplate(template), ImmutableList.copyOf(args)); }
@Override public List<AuditStatsDto> countStatusByDate(Predicate predicate) { NumberPath<Long> aliasDate = Expressions.numberPath(Long.class, "date"); QAudit qAudit = QAudit.audit; Expression<String> groupDateExpr = Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qAudit.startTime, "%Y-%m-%d"); Expression<String> selectDateExpr = Expressions.stringTemplate("DATE_FORMAT({0}, {1})", qAudit.startTime, "%Y-%m-%d").as("date"); return from(qAudit) .select(Projections.constructor(AuditStatsDto.class, selectDateExpr, qAudit.status, qAudit.count())) .where(predicate) .groupBy(groupDateExpr, qAudit.status) .orderBy(aliasDate.asc()) .fetch(); }
@Test @ExcludeIn({POSTGRESQL, SQLITE}) public void string_indexOf() { StringExpression str = Expressions.stringTemplate("' abcd '"); assertEquals(Integer.valueOf(2), firstResult(str.indexOf("a"))); assertEquals(Integer.valueOf(-1), firstResult(str.indexOf("a", 4))); assertEquals(Integer.valueOf(3), firstResult(str.indexOf("b", 2))); }
@Test public void like() { Expression<?> expr = Expressions.stringTemplate("'%a%'").contains("%a%"); SQLSerializer serializer = new SQLSerializer(Configuration.DEFAULT); serializer.handle(expr); assertEquals("'%a%' like ? escape '\\'", serializer.toString()); }
@Test public void insert_with_tempateExpression_in_batch() { assertEquals(1, insert(survey) .set(survey.id, 3) .set(survey.name, Expressions.stringTemplate("'Hello'")) .addBatch() .execute()); }
@Test @ExcludeIn(TERADATA) public void update_with_templateExpression_in_batch() { assertEquals(1, update(survey) .set(survey.id, 3) .set(survey.name, Expressions.stringTemplate("'Hello'")) .addBatch() .execute()); }
@Test @ExcludeIn(SQLITE) public void string() { StringExpression str = Expressions.stringTemplate("' abcd '"); assertEquals("abcd ", firstResult(StringExpressions.ltrim(str))); assertEquals(Integer.valueOf(3), firstResult(str.locate("a"))); assertEquals(Integer.valueOf(0), firstResult(str.locate("a", 4))); assertEquals(Integer.valueOf(4), firstResult(str.locate("b", 2))); assertEquals(" abcd", firstResult(StringExpressions.rtrim(str))); assertEquals("abc", firstResult(str.substring(2, 5))); }
@Test @IncludeIn(H2) public void merge_with_templateExpression_in_batch() { SQLMergeClause merge = merge(survey) .keys(survey.id) .set(survey.id, 5) .set(survey.name, Expressions.stringTemplate("'5'")) .addBatch(); assertEquals(1, merge.execute()); }
@Test public void batch_templates() throws SQLException { assertEquals(1, insert(survey).values(2, "A","B").execute()); assertEquals(1, insert(survey).values(3, "B","C").execute()); SQLUpdateClause update = update(survey); update.set(survey.name, "AA").where(survey.name.eq(Expressions.stringTemplate("'A'"))).addBatch(); update.set(survey.name, "BB").where(survey.name.eq(Expressions.stringTemplate("'B'"))).addBatch(); assertEquals(2, update.execute()); }
@Test public void insert_batch_Templates() { SQLInsertClause insert = insert(survey) .set(survey.id, 5) .set(survey.name, Expressions.stringTemplate("'55'")) .addBatch(); insert.set(survey.id, 6) .set(survey.name, Expressions.stringTemplate("'66'")) .addBatch(); assertEquals(2, insert.execute()); assertEquals(1L, query().from(survey).where(survey.name.eq("55")).fetchCount()); assertEquals(1L, query().from(survey).where(survey.name.eq("66")).fetchCount()); }