使用以下代码
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()
吗?