Map<String, Object> params = paramsMap(); String secondarySql = builder.buildSecondaryUpdateSql(fields, params, true); String primarySql = builder.buildSecondaryUpdateSql(fields, params, false); String sql = builder.buildUpdateSql(fields, paramsMap()); if (null == sql) { throw new IllegalStateException("No update fields");
protected SqlStatement buildQueryStatement(QueryContext qc) { return createQueryStatement(qc, builder.buildSelectSql(), false); }
@Override public long count() { String sql = builder.buildCountSql(); SqlStatement statement = createQueryStatement(this, sql, true); return statement.executeQuery(ResultSetReaders.forScalarValue(Long.class, false)); }
@Override public int delete() { if (em.hasSecondaryTable()) { String secondarySql = builder.buildSecondaryDeleteSql(true); String primarySql = builder.buildSecondaryDeleteSql(false); return dao.doTransaction((s) -> { createUpdateStatement(this, secondarySql).executeUpdate(); return createUpdateStatement(this, primarySql).executeUpdate(); }); } else { return createUpdateStatement(this, builder.buildDeleteSql()).executeUpdate(); } }
@Override protected QueryResult<T> executeQuery(QueryContext qc) { String sql = builder.buildSelectSql(); SqlStatement statement = createQueryStatement(qc, sql); ResultSetReader<List<T>> reader = ResultSetReaders.forListEntity(dao.getOrmContext(), qc, em, targetType, targetType); return new DefaultQueryResult<T>(sql, statement.executeQuery(reader)); }
@Override public CriteriaQuery<T> addSelectItem(String fieldOrExpr) { builder.addExtraSelectItem(fieldOrExpr); return this; }
public DefaultCriteriaQuery(Dao dao, EntityMapping em, Class<T> targetType) { super(dao, targetType, em); Args.notNull(em, "entity mapping"); this.builder = new SqlBuilder(); }
@Override public CriteriaQuery<T> addSelectField(String field) { builder.addExtraSelectItem(field); return this; }