Spring Cloud Datastore 關(guān)鍵參考關(guān)系

2024-01-12 09:34 更新

常規(guī)關(guān)系可以使用@Reference批注進(jìn)行存儲(chǔ)。

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關(guān)系是指以自己的種類存在的完整實(shí)體之間的關(guān)系。ShoppingOrderItem實(shí)體之間的關(guān)系存儲(chǔ)為ShoppingOrder內(nèi)部的鍵字段,Spring Data Cloud Datastore將其解析為基礎(chǔ)Java實(shí)體類型:

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

參考屬性可以是單數(shù)或類似集合的。這些屬性對(duì)應(yīng)于實(shí)體和Cloud Datastore Kind中包含引用實(shí)體的鍵值的實(shí)際列。引用的實(shí)體是其他種類的成熟實(shí)體。

@Descendants關(guān)系類似,讀取或?qū)懭雽?shí)體將遞歸讀取或?qū)懭胨屑?jí)別的所有引用實(shí)體。如果引用的實(shí)體具有null ID值,則它們將另存為新實(shí)體,并將具有Cloud Datastore分配的ID值。實(shí)體的密鑰和實(shí)體作為引用持有的密鑰之間沒有關(guān)系的要求。 從Cloud Datastore讀回時(shí),不會(huì)保留類似集合的參考屬性的順序。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)