Со следующим кодом
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()
?