Spring Cloud Cloud Spanner 主鍵

2024-01-10 16:00 更新

對(duì)于一個(gè)簡單的表,您可能只有一個(gè)由單列組成的主鍵。即使在這種情況下,也需要@PrimaryKey批注。@PrimaryKey標(biāo)識(shí)與主鍵相對(duì)應(yīng)的一個(gè)或多個(gè)ID屬性。

Spanner對(duì)多列復(fù)合主鍵具有一流的支持。您必須使用@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參數(shù)按順序標(biāo)識(shí)與主鍵列相對(duì)應(yīng)的屬性,從1開始并連續(xù)增加。順序很重要,必須反映出Cloud Spanner模式中定義的順序。在我們的示例中,用于創(chuàng)建表的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沒有自動(dòng)生成ID。對(duì)于大多數(shù)用例,應(yīng)謹(jǐn)慎使用順序ID,以避免在系統(tǒng)中創(chuàng)建數(shù)據(jù)熱點(diǎn)。閱讀Spanner主鍵文檔 ,以更好地了解主鍵和推薦的做法。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)