Spring Cloud Cloud Spanner 嵌入式對象

2024-01-11 14:54 更新

如果將B類型的對象作為A的屬性嵌入,則B的列將與A的列保存在同一Cloud Spanner表中。

如果B具有主鍵列,則這些列將包含在A的主鍵中。B也可以具有嵌入式屬性。嵌入允許在多個實(shí)體之間重復(fù)使用列,并且對于實(shí)現(xiàn)父子情況非常有用,因為Cloud Spanner要求子表包括其父項的關(guān)鍵列。

例如:

class X {
  @PrimaryKey
  String grandParentId;

  long age;
}

class A {
  @PrimaryKey
  @Embedded
  X grandParent;

  @PrimaryKey(keyOrder = 2)
  String parentId;

  String value;
}

@Table(name = "items")
class B {
  @PrimaryKey
  @Embedded
  A parent;

  @PrimaryKey(keyOrder = 2)
  String id;

  @Column(name = "child_value")
  String value;
}

B實(shí)體可以存儲在定義為的表中:

CREATE TABLE items (
    grandParentId STRING(MAX),
    parentId STRING(MAX),
    id STRING(MAX),
    value STRING(MAX),
    child_value STRING(MAX),
    age INT64
) PRIMARY KEY (grandParentId, parentId, id)

請注意,嵌入屬性的列名稱必須全部唯一。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號