@Override
    public <U> JDOQuery<U> select(Expression<U> expr) {
        queryMixin.setProjection(expr);
        @SuppressWarnings("unchecked") // This is the new projection type
        JDOQuery<U> newType = (JDOQuery<U>) this;
        return newType;
    }
Clone the state of this query to a new {@link JDOQuery} instance with the given {@link PersistenceManager}

@param persistenceManager PersistenceManager instance to use
@return cloned query
querydsl-jdo/src/main/java/com/querydsl/jdo/JDOQuery.java