如何使用Long id查询实体的java appengine数据存储区VIEWER

时间:2010-08-18 17:29:23

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

我正在尝试做一些相对简单的事情以及我认为以前能做的事情。

我正在尝试使用管理界面使用长ID来查询我的数据存储区。有问题的实体定义为:

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Notification
{   
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long notificationId = null;
}

在appengine管理界面的数据存储区查看器中,我执行以下gql查询:

SELECT * FROM Notification WHERE _key_ = KEY('Notification', 12345)
SELECT * FROM Notification WHERE id = KEY('Notification', 12345)
SELECT * FROM Notification WHERE notificationId = KEY('Notification', 12345)
SELECT * FROM Notification WHERE notificationId = 12345

这些查询都不会返回任何结果,也不会产生任何错误。我确信该实体存在。其中一些用于工作我只是不记得哪个。这可能是由于最近对1.3.6的附加更新?

1 个答案:

答案 0 :(得分:4)

你需要这个:

SELECT * FROM Notification WHERE __key__ = KEY('Notification', 12345)

注意密钥周围的两个下划线,而不是一个。