Language: Java
Label: safe
CWE: CWE-89 \u2014 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.

Code:
    public String build() {

        String whereClause = buildWhereClause();

        StringBuilder query = new StringBuilder();
        if (isCountQuery) {
            query.append("SELECT COUNT(oid) FROM object WHERE type_id IN (:types)");
            dialect.appendComment(query, queryType.getName());
            if (whereClause != null) {
                dialect.appendIfDebug(query, "", " ");
                query.append("AND ").append(whereClause);
            }
        } else {
            if (sortOrder != null) {
                querySortBy(query, whereClause, sortOrder);
            } else {
                query.append("SELECT id FROM object WHERE type_id IN (:types)");
                dialect.appendComment(query, queryType.getName());
                dialect.appendIfDebug(query, "", " ");
                if (whereClause != null) {
                    query.append("AND ").append(whereClause);
                    dialect.appendIfDebug(query, whereClause.endsWith("\n") ? "" : " ", " ");
                }
                query.append("ORDER BY oid");
            }
            applyOffsetLimit(query);
        }

        return query.toString().trim();
    }