Когда я вызываю setResultClass (...) в JDO / DataNucleus для агрегатной функции, JDOUserException бросается - PullRequest
0 голосов
/ 12 ноября 2010

Со следующим кодом

    Query query = pm.newQuery(User.class);
    query.setFilter( "username == :usernameParam" );
    query.setResult( "count(username)" );
    query.setResultClass(Long.class);
    Object result = query.execute(username);
    return (result!=null && (Long)result>0);

я получаю это исключение:

javax.jdo.JDOUserException: запрос вернет одно поле, но оно не соответствуетвведите ResultClass (java.lang.Long): это java.lang.Long

Если я удаляю запрос .setResult(Long.class), он работает, и я получаю Long.

Возможно, я не понимаю setResult() метод.Я понял, что мне нужно установить это, чтобы указать, какой тип результата я хотел.Но разве это не относится к агрегатным функциям, таким как count()?

1 Ответ

1 голос
/ 12 ноября 2010

Это было исправлено несколько дней назад. К счастью для вас версии 2.1.3 и 2.2 M3 были выпущены около часа назад; -)

...