gpt4 book ai didi

java - Google App Engine Objectify - 加载单个对象或键列表?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:27 25 4
gpt4 key购买 nike

我正在尝试掌握 Google App Engine 编程,并想知道这两种方法之间的区别是什么 - 是否存在实际差异。

方法一)

public Collection<Conference> getConferencesToAttend(Profile profile)
{
List<String> keyStringsToAttend = profile.getConferenceKeysToAttend();
List<Conference> conferences = new ArrayList<Conference>();
for(String conferenceString : keyStringsToAttend)
{
conferences.add(ofy().load().key(Key.create(Conference.class,conferenceString)).now());
}
return conferences;
}

方法二)

public Collection<Conference> getConferencesToAttend(Profile profile)
List<String> keyStringsToAttend = profile.getConferenceKeysToAttend();
List<Key<Conference>> keysToAttend = new ArrayList<>();
for (String keyString : keyStringsToAttend) {
keysToAttend.add(Key.<Conference>create(keyString));
}
return ofy().load().keys(keysToAttend).values();
}

“conferenceKeysToAttend”列表保证只有唯一的 session ——那么我选择两个选项中的哪一个有关系吗?如果是这样,为什么?

最佳答案

方法 A 一个一个地加载实体,而方法 B 进行批量加载,这种方法成本更低,因为您只需进行 1 次到 Google 数据中心的网络往返。您可以通过测量这两种方法在多次加载一堆 key 时所花费的时间来观察这一点。

在进行批量加载时,如果数据存储操作抛出异常,则需要谨慎对待加载的实体。即使某些实体未加载,操作也可能成功。

关于java - Google App Engine Objectify - 加载单个对象或键列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27698271/

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