gpt4 book ai didi

java - 使用未编码的 key 与真正的 key ,有什么好处?

转载 作者:行者123 更新时间:2023-12-04 06:54:20 24 4
gpt4 key购买 nike

我正在阅读应用引擎中 key 生成的文档。我不确定使用简单的字符串键对真正的键有什么影响。例如,当我的用户注册时,他们必须提供一个唯一的用户名:

class User {
/** Key type = unencoded string. */
@PrimaryKey
private String name;
}

现在,如果我正确理解文档,我应该仍然能够使用它生成命名键和实体组,对吗?:
// Find an instance of this entity:
User user = pm.findObjectById(User.class, "myusername");

// Create a new obj and put it in same entity group:
Key key = new KeyFactory.Builder(
User.class.getSimpleName(), "myusername")
.addChild(Goat.class.getSimpleName(), "baa").getKey();
Goat goat = new Goat();
goat.setKey(key);
pm.makePersistent(goat);

Goat 实例现在应该与该用户在同一个实体组中,对吗?我的意思是将用户的主键保留为原始字符串没有问题吗?

使用 Key 有性能优势吗?我应该更新为:
class User {
/** Key type = unencoded string. */
@PrimaryKey
private Key key;
}

// Generate like:
Key key = KeyFactory.createKey(
User.class.getSimpleName(),
"myusername");
user.setKey(key);

这几乎是一样的,无论如何我仍然只是使用唯一的用户名生成 key ,

谢谢

最佳答案

当您在示例中指定字符串键时,您指定的是键名(请参阅 the docs )。因此,您不应该使用 KeyFactory - 只需将键字段设置为“myusername”。

不过,这两个选项之间没有性能差异:它们在内部的存储方式相同;如果您没有为此模型使用父实体,则键名更易于使用。

关于java - 使用未编码的 key 与真正的 key ,有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731121/

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