gpt4 book ai didi

java - GAE - 数据存储查询的 declareParameters 是否有 setParameters 对应项?

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:41 25 4
gpt4 key购买 nike

Datastore Queries documentation可以看到使用查询对象方法调用设置查询的示例:

Query q = pm.newQuery(Person.class);
q.setFilter("lastName == lastNameParam");
q.setOrdering("height desc");
q.declareParameters("String lastNameParam");
List<Person> results = (List<Person>) q.execute("Smith");

我喜欢这种风格,因为它使每个部分都可读并且易于理解正在做什么。但是,最后,它们在实际的 execute 行期间为“lastNameParam”传入值“Smith”。从我的角度来看,为了保持一致,应该有一个 setParameters 查询方法,以便以与声明参数名称相同的方式清楚地说明传递给参数的值。我还没有找到这样的查询方法。有吗?如果没有,是否有充分的理由不这样做?还是我的想法很愚蠢,我的推理毫无根据?非常感谢!

最佳答案

有一种现有的方法可以做到这一点。函数setParameter()可用。例如,问题中的代码可以通过以下方式完成:

Query q = pm.newQuery(Person.class);
q.setFilter("lastName == lastNameParam");
q.setOrdering("height desc");
q.declareParameters("String lastNameParam");
q.setParameter("lastNameParam", "Smith");
List<Person> results = (List<Person>) q.execute();

我可能把原来的问题表述得很糟糕,因为这与 Google App Engine 或 Google Datastore 关系不大,主要涉及 Java 的 Query 类。无论如何,这都是可行的解决方案。

关于java - GAE - 数据存储查询的 declareParameters 是否有 setParameters 对应项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com