gpt4 book ai didi

google-app-engine - 如何使用 JDO 在 App Engine 中查询单个字段

转载 作者:行者123 更新时间:2023-12-04 06:17:39 25 4
gpt4 key购买 nike

我有一个看起来像的产品 POJO。

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Product extends AbstractModel {
@Persistent
private String name;

@Persistent
private Key homePage;

@Persistent
private Boolean featured;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Key getHomePage() {
return homePage;
}

public void setHomePage(Key homePage) {
this.homePage = homePage;
}

public boolean isFeatured() {
return featured;
}

public void setFeatured(Boolean featured) {
this.featured = featured;
}
}

我的 DataStore 目前完全是空的。

我想检索所有主页键,其中产品的特色是真实的。

我想
PersistenceManager persistenceManager = getPersistenceManager();
Query query = persistenceManager.newQuery("SELECT homePage FROM " + getModelClass());
query.setFilter("featured == true");

List<Key> productPageKeys = (List<Key>) query.execute();

但是,这给了我一个空指针错误。我应该如何构建这个查询?

干杯,
彼得

最佳答案

要进行投影,您会执行类似的操作

Query q = pm.newQuery("SELECT myField FROM mydomain.MyClass WHERE featured == true");
List<String> results = (List<String>)q.execute();

其中 String 是我的字段的类型。任何基本的 JDO 文档都会定义它。
在内部 GAE/J 将检索实体,然后在将其返回给用户之前的后处理中将其处理为您需要的投影。

正如尼克在另一个回复中指出的那样,这不会比自己提高性能……但是标准持久性 API 的全部意义在于保护您免受此类数据存储特定于必须进行此类提取的影响;这一切都是开箱即用的。

关于google-app-engine - 如何使用 JDO 在 App Engine 中查询单个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7020082/

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