public Query adding( Column... columns ) {
        List<Column> newColumns = null;
        if (this.columns != null) {
            newColumns = new ArrayList<Column>(this.columns);
            for (Column column : columns) {
                newColumns.add(column);
            }
        } else {
            newColumns = Arrays.asList(columns);
        }
        return new Query(source, constraint, orderings(), newColumns, getLimits(), distinct);
    }
public Query adding ( Column ... columns ) { List < Column > newColumns = null ; if ( this . columns != null ) { newColumns = new ArrayList < Column > ( this . columns ) ; for ( Column column : columns ) { newColumns . add ( column ) ; } } else { newColumns = Arrays . asList ( columns ) ; } return new Query ( source , constraint , orderings ( ) , newColumns , getLimits ( ) , distinct ) ; }
Create a copy of this query, but that returns results that include the columns specified by this query as well as the
supplied columns.

@param columns the additional columns that should be included in the the results; may not be null
@return the copy of the query returning the supplied result columns; never null