Spring Cloud Datastore 关键参考关系

2024-01-12 09:34 更新

常规关系可以使用@Reference批注进行存储。

import org.springframework.cloud.gcp.data.datastore.core.mapping.Reference;
import org.springframework.data.annotation.Id;

@Entity
public class ShoppingOrder {
  @Id
  long id;

  @Reference
  List<Item> items;

  @Reference
  Item specialSingleItem;
}

@Entity
public class Item {
  @Id
  Key purchasedItemKey;

  String name;

  Timestamp timeAddedToOrder;
}

@Reference关系是指以自己的种类存在的完整实体之间的关系。ShoppingOrderItem实体之间的关系存储为ShoppingOrder内部的键字段,Spring Data Cloud Datastore将其解析为基础Java实体类型:

{
  "id" : 12345,
  "specialSingleItem" : Key(item, "milk"),
  "items" : [ Key(item, "eggs"), Key(item, "sausage") ]
}

参考属性可以是单数或类似集合的。这些属性对应于实体和Cloud Datastore Kind中包含引用实体的键值的实际列。引用的实体是其他种类的成熟实体。

@Descendants关系类似,读取或写入实体将递归读取或写入所有级别的所有引用实体。如果引用的实体具有null ID值,则它们将另存为新实体,并将具有Cloud Datastore分配的ID值。实体的密钥和实体作为引用持有的密钥之间没有关系的要求。 从Cloud Datastore读回时,不会保留类似集合的参考属性的顺序。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号