我有
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/