我正在尝试做一些相对简单的事情以及我认为以前能做的事情。
我正在尝试使用管理界面使用长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的附加更新?
答案 0 :(得分:4)
你需要这个:
SELECT * FROM Notification WHERE __key__ = KEY('Notification', 12345)
注意密钥周围的两个下划线,而不是一个。