Google 数据存储获取功能
Google Datastore Get Functionality
当我使用 Java 库 (com.google.cloud.datastore.Datastore
) 从 Google 数据存储中读取一个实体时,当 get(key)
方法被调用,实体的每个个体属性是在引用时单独加载,还是在我第一次访问实体属性时拉取整个实体?
Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
Entity entity = datastore.get(key); //Is the entire entity and its properties loaded here?
entity.getString("name"); //or is the entity/property loaded upon access?
此外,如果在我获取实体的同时更新实体,是否保证我收到的实体是一致的。 (即是否可以接收部分写入的实体,其中一些属性是写入的更新值,而一些是尚未反映更新的旧值?)
让我们检查官方库文档 Datastore.get(key) method inherited from interface com.google.cloud.datastore.DatastoreReader and return Entity for the given key. An entity is a persistent data object and you have here method getString(String name) 继承自 class com.google.cloud.datastore.BaseEntity 其中 returns 将 属性 值作为字符串,比如过滤什么属性你需要。
根据前述和 OOP 概念 'Entity entity = datastore.get(key);' returns 您具有所有属性的整个实体并将其保存在 'entity' 变量中。
关于数据一致性 Datastore 查询可以在两个强一致性级别中的任何一个级别提供结果,最终您需要在一致性和速度之间取得平衡,具体取决于您的应用程序需求。我诚挚地建议阅读 1,2 文档以更清楚地了解它在 Datastore 中的工作原理。
当我使用 Java 库 (com.google.cloud.datastore.Datastore
) 从 Google 数据存储中读取一个实体时,当 get(key)
方法被调用,实体的每个个体属性是在引用时单独加载,还是在我第一次访问实体属性时拉取整个实体?
Datastore datastore = DatastoreOptions.getDefaultInstance().getService();
Entity entity = datastore.get(key); //Is the entire entity and its properties loaded here?
entity.getString("name"); //or is the entity/property loaded upon access?
此外,如果在我获取实体的同时更新实体,是否保证我收到的实体是一致的。 (即是否可以接收部分写入的实体,其中一些属性是写入的更新值,而一些是尚未反映更新的旧值?)
让我们检查官方库文档 Datastore.get(key) method inherited from interface com.google.cloud.datastore.DatastoreReader and return Entity for the given key. An entity is a persistent data object and you have here method getString(String name) 继承自 class com.google.cloud.datastore.BaseEntity 其中 returns 将 属性 值作为字符串,比如过滤什么属性你需要。 根据前述和 OOP 概念 'Entity entity = datastore.get(key);' returns 您具有所有属性的整个实体并将其保存在 'entity' 变量中。
关于数据一致性 Datastore 查询可以在两个强一致性级别中的任何一个级别提供结果,最终您需要在一致性和速度之间取得平衡,具体取决于您的应用程序需求。我诚挚地建议阅读 1,2 文档以更清楚地了解它在 Datastore 中的工作原理。