Google app engine 在Google App Engine的JDO中按id获取元素

Google app engine 在Google App Engine的JDO中按id获取元素,google-app-engine,jdo,gql,Google App Engine,Jdo,Gql,我在尝试查找单个元素时遇到问题 按id。实体类如下所示: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Test{ @PrimaryKey private String name; //..and so on. 在本例中,值名的作用类似于id。我使用的是 查询以查找元素: PersistenceManager pm = PMF.get().getPersi

我在尝试查找单个元素时遇到问题 按id。实体类如下所示:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Test{

   @PrimaryKey
   private String name;

//..and so on.
在本例中,值名的作用类似于id。我使用的是 查询以查找元素:

           PersistenceManager pm = PMF.get().getPersistenceManager();

           Query q = pm.newQuery(Test.class);
           q.setFilter("name == " + id);

           //String query = "SELECT FROM " + Test.class.getName() + "WHERE name == " + id;
           Test test = (Test) q.execute();

           return category;
假设id是由其他方法作为参数发送的字符串值

但它无法检索任何数据。此外,它还会引发一个异常: java.lang.ClassCastException: org.datanucleus.store.appengine.query.StreamingQueryResult不能为空 转换为com.santiagopoli.gapptest.domain.Test

已注释的查询也不起作用

我希望任何人都能帮助我。这是一件很遗憾的事情 难以实现。在其他sql实现中,这将非常简单 键入select*fromtest,其中id=。谢谢

我刚修好

试试这个

Test t = pm.getObjectById(Test.class, id);
参考资料。。。