Spring Cloud Cloud Spanner 嵌入式对象
2024-01-11 14:54 更新
如果将B
类型的对象作为A
的属性嵌入,则B
的列将与A
的列保存在同一Cloud Spanner表中。
如果B
具有主键列,则这些列将包含在A
的主键中。B
也可以具有嵌入式属性。嵌入允许在多个实体之间重复使用列,并且对于实现父子情况非常有用,因为Cloud Spanner要求子表包括其父项的关键列。
例如:
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
实体可以存储在定义为的表中:
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)
请注意,嵌入属性的列名称必须全部唯一。
以上内容是否对您有帮助:
更多建议: