@Override
    public JPAQuery<Tuple> select(Expression<?>... exprs) {
        queryMixin.setProjection(exprs);
        @SuppressWarnings("unchecked") // This is the new type
        JPAQuery<Tuple> newType = (JPAQuery<Tuple>) this;
        return newType;
    }
Creates a new query

@param em entity manager
@param templates templates
@param metadata query metadata
querydsl-jpa/src/main/java/com/querydsl/jpa/impl/JPAQuery.java