我有

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:无效过滤器:关键过滤器值必须为Key;收到aght52oobW1hIHTWVzc2FnZRiyAQw(str)。

我也尝试使用

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


但是没有用

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

最佳答案

首先,永远不要手工构造GQL字符串-这会导致注入漏洞。相反,如here所述声明并传递参数。

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

关于java - 在Google Appengine [Java]中根据__key __(唯一标识符)进行选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2893975/

10-09 01:43