@Override
    public <U> SQLQuery<U> select(Expression<U> expr) {
        queryMixin.setProjection(expr);
        @SuppressWarnings("unchecked") // This is the new type
        SQLQuery<U> newType = (SQLQuery<U>) this;
        return newType;
    }
Create a new SQLQuery instance

@param connProvider Connection to use
@param configuration configuration
@param metadata metadata
querydsl-sql/src/main/java/com/querydsl/sql/SQLQuery.java