Spring Cloud Cloud Spanner 主键

2024-01-10 16:00 更新

对于一个简单的表,您可能只有一个由单列组成的主键。即使在这种情况下,也需要@PrimaryKey批注。@PrimaryKey标识与主键相对应的一个或多个ID属性。

Spanner对多列复合主键具有一流的支持。您必须使用@PrimaryKey注释主键所包含的所有POJO字段,如下所示:

@Table(name = "trades")
public class Trade {
	@PrimaryKey(keyOrder = 2)
	@Column(name = "trade_id")
	private String tradeId;

	@PrimaryKey(keyOrder = 1)
	@Column(name = "trader_id")
	private String traderId;

	private String action;

	private Double price;

	private Double shares;

	private String symbol;
}

@PrimaryKeykeyOrder参数按顺序标识与主键列相对应的属性,从1开始并连续增加。顺序很重要,必须反映出Cloud Spanner模式中定义的顺序。在我们的示例中,用于创建表的DDL及其主键如下:

CREATE TABLE trades (
    trader_id STRING(MAX),
    trade_id STRING(MAX),
    action STRING(15),
    symbol STRING(10),
    price FLOAT64,
    shares FLOAT64
) PRIMARY KEY (trader_id, trade_id)

Spanner没有自动生成ID。对于大多数用例,应谨慎使用顺序ID,以避免在系统中创建数据热点。阅读Spanner主键文档 ,以更好地了解主键和推荐的做法。

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号