W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
對(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; }
@PrimaryKey
的keyOrder
參數(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主鍵文檔 ,以更好地了解主鍵和推薦的做法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: