Java 在什么情况下,Query.execute()在DataNucleus中返回null

Java 在什么情况下,Query.execute()在DataNucleus中返回null,java,jdo,datanucleus,Java,Jdo,Datanucleus,我还没有向数据库中添加任何内容,因此根据我的计算,下面的查询应该返回0的结果 Query query = pm.newQuery(Password.class); query.setFilter("password == :passwordParam"); query.setResult("count(password)"); query.setResultClass(Integer.class); Integer result = (Integer)qu

我还没有向数据库中添加任何内容,因此根据我的计算,下面的查询应该返回0的结果

    Query query = pm.newQuery(Password.class);
    query.setFilter("password == :passwordParam");
    query.setResult("count(password)");
    query.setResultClass(Integer.class);
    Integer result = (Integer)query.execute(password);
    System.out.println("Result: [" + result + "]");
它返回
null

javadocs和result docs都没有说明这个方法能够返回null。我猜我做错了什么事。


当我使用DataNucleus尝试您的代码时,一开始我遇到了类似的问题

字节码增强器未运行。一旦我启用它,计数就变成了预期的0


可能您也遇到了类似的问题。

当我尝试使用DataNucleus编写代码时,一开始我遇到了类似的问题

字节码增强器未运行。一旦我启用它,计数就变成了预期的0


可能您也遇到了类似的问题。

注意:我删除了之前关于聚合和JDO标准的回答,因为这对任何方面都没有帮助。其他信息也很有用,您应该同时保留这两个信息。:)但无论如何,令人惊讶的是,我认为你是对的。增强器确实在运行,我每次保存文件时都会看到它运行,但我做了一个干净的项目,现在我得到了计数的预期结果。。。也许它不知何故没有增强这一个文件,而clean导致它再次执行所有这些操作。无论如何,非常感谢!注意:我删除了我之前关于聚合和JDO标准的回答,因为它在任何方面都没有真正的帮助。其他信息也很有用,您应该同时保留这两个信息。:)但无论如何,令人惊讶的是,我认为你是对的。增强器确实在运行,我每次保存文件时都会看到它运行,但我做了一个干净的项目,现在我得到了计数的预期结果。。。也许它不知何故没有增强这一个文件,而clean导致它再次执行所有这些操作。无论如何,非常感谢!