【问题标题】:How to retrieve Google Appengine Objects by id (Long value)?如何按 id(长值)检索 Google Appengine 对象?
【发布时间】:2010-05-30 14:16:43
【问题描述】:

我已经通过以下方式声明了一个实体:

public class MyEntity {
 @PrimaryKey
 @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
 private Long id;
 @Persistent
 private String text;
        //getters and setters
}

现在我想使用 id 检索对象。我尝试使用“SELECT * FROM MyEntity Where id = 382005”或通过 servlet 中的查询从 Google Appengine 数据查看器对其进行管理。我没有返回任何结果。但是我确定具有 id 的对象存在(我创建了一个 jsp,它查询数据库中的所有对象并将它们显示在数据库中)。

那么我的查询有什么问题?我在查询错误的字段吗? Google Appengine 数据查看器将字段命名为“ID/name”,其值为“id=382005”。我必须用这个名字查询吗?我试过了,但没有成功:(

【问题讨论】:

    标签: java google-app-engine primary-key google-cloud-datastore


    【解决方案1】:

    你可以在下面使用,因为你是使用主键查询的:

    MyEntity yourEntity = entityManager.find(MyEntity.class, yourId);
    

    注意,这应该也可以,但是如果您基于主键进行搜索,使用 find() 会更容易:

    Query query = entityManager.createQuery(
        "SELECT m FROM MyEntity m WHERE id = :id");
    query.setParameter("id", yourId);
    
    MyEntity yourEntity = (MyEntity) query.getSingleResult();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-15
      • 2014-01-26
      • 2017-06-06
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      相关资源
      最近更新 更多