public SQLTemplate getQuery() { // concatenate buffers... StringBuilder main = bufferChain.get(0); for (int i = 1; i < bufferChain.size(); i++) { main.append(bufferChain.get(i)); } String sql = main.length() > 0 ? main.toString() : null; SQLTemplate query = new SQLTemplate(compiledExpression .getRootDescriptor() .getObjectClass(), sql); query.setParams(boundParameters); return query; }
template.setParamsList(positionalParams); } else { template.setParams(params);
query.setParams(snapshot);
template.setParamsList(positionalParams); } else { template.setParams(params);
/** * Creates and returns a new SQLTemplate built using this query as a * prototype and substituting template parameters with the values from the * map. * * @since 1.1 */ @Override public Query createQuery(Map<String, ?> parameters) { // create a query replica SQLTemplate query = new SQLTemplate(); query.setRoot(root); query.setDefaultTemplate(getDefaultTemplate()); if (templates != null) { query.templates = new HashMap<>(templates); } query.metaData.copyFromInfo(this.metaData); query.setParams(parameters); query.setColumnNamesCapitalization(this.getColumnNamesCapitalization()); return query; }
@Test public void testTime() { LocalTime lt = LocalTime.of(14, 0, 1); // "14:00:01" Time time = Time.valueOf(lt); SQLTemplate insert = new SQLTemplate(E4.class, "INSERT INTO utest.e4 (c_time) values (#bind($time 'TIME'))"); insert.setParams(Collections.singletonMap("time", time)); newContext().performGenericQuery(insert); String timeString = DateTimeFormatters.isoLocalDateTime().format(Instant.ofEpochMilli(time.getTime())); Response response = target("/e4").queryParam("include", E4.C_TIME.getName()).request().get(); onSuccess(response).bodyEquals(1, "{\"cTime\":\"" + timeString + "\"}"); }
@Test public void testDateTime() { Date date = Date.from(Instant.from(UtcDateConverter.dateParser().fromString("2012-02-03T11:01:02Z"))); SQLTemplate insert = new SQLTemplate(E4.class, "INSERT INTO utest.e4 (c_timestamp) values (#bind($ts 'TIMESTAMP'))"); insert.setParams(Collections.singletonMap("ts", date)); newContext().performGenericQuery(insert); String dateString = DateTimeFormatters.isoLocalDateTime().format(Instant.ofEpochMilli(date.getTime())); Response response = target("/e4").queryParam("include", E4.C_TIMESTAMP.getName()).request().get(); onSuccess(response).bodyEquals(1, "{\"cTimestamp\":\"" + dateString + "\"}"); }
@Test public void testDate() { Date date = Date.from(Instant.from(UtcDateConverter.dateParser().fromString("2012-02-03"))); SQLTemplate insert = new SQLTemplate(E4.class, "INSERT INTO utest.e4 (c_date) values (#bind($date 'DATE'))"); insert.setParams(Collections.singletonMap("date", date)); newContext().performGenericQuery(insert); String dateString = DateTimeFormatters.isoLocalDateTime().format(Instant.ofEpochMilli(date.getTime())); Response response = target("/e4").queryParam("include", E4.C_DATE.getName()).request().get(); onSuccess(response).bodyEquals(1, "{\"cDate\":\"" + dateString + "\"}"); }