1

我有

public class QuantityType {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent
    private String type;
}

我正在尝试设置一个查询以通过它的键获得正确的 QuantityType

gql = "select * from QuantityType where __key__='aght52oobW1hIHTWVzc2FnZRiyAQw'";

但它不起作用,因为

BadFilterError: BadFilterError: invalid filter: key过滤值必须是Key;收到 aght52oobW1hIHTWVzc2FnZRiyaQw (a str)。

我也尝试过使用

gql = "select * from QuantityType where __key__=='" + KeyFactory.stringToKey(qTypeKey)+"'";

但它不工作..

如何通过密钥从我的数据存储中获取特定对象?

4

1 回答 1

2

首先,您永远不应该手动构造 GQL 字符串 - 这会导致注入漏洞。相反,声明并传入参数,如此处所述

但是,要按键检索实体,您根本不需要进行查询:使用 getObjectById,如此所述。这比使用查询要快得多。

于 2010-05-24T01:29:45.313 回答