本文整理了Java中com.google.cloud.spanner.Key
类的一些代码示例,展示了Key
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Key
类的具体详情如下:
包路径:com.google.cloud.spanner.Key
类名称:Key
[英]Represents a row key in a Cloud Spanner table or index. A key is a tuple of values constrained to the scalar Cloud Spanner types: currently these are BOOLEAN, INT64, FLOAT64, STRING, BYTES and TIMESTAMP. Values may be null where the table definition permits it.
Key is used to define the row, or endpoints of a range of rows, to retrieve in read operations or to delete in a mutation.
Key instances are immutable.
[中]表示云扳手表或索引中的行键。键是受标量云扳手类型约束的值的元组:目前这些类型是BOOLEAN、INT64、FLOAT64、STRING、BYTES和TIMESTAMP。在表定义允许的情况下,值可以为null。
键用于定义行或一系列行的端点,以便在读取操作中检索或在变异中删除。
关键实例是不可变的。
代码示例来源:origin: googleapis/google-cloud-java
@Override
public void run() {
client
.singleUse(TimestampBound.strong())
.readRow(TABLE_NAME, Key.of("k1"), ALL_COLUMNS);
}
});
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void toBuilder() {
Key k = Key.of(1, 2).toBuilder().append(3).build();
assertThat(k.size()).isEqualTo(3);
assertThat(k.getParts()).containsExactly(1L, 2L, 3L).inOrder();
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void testToString() {
assertThat(Key.of().toString()).isEqualTo("[]");
assertThat(Key.of(new Object[] {null}).toString()).isEqualTo("[<null>]");
assertThat(Key.of(true).toString()).isEqualTo("[true]");
assertThat(Key.of(32).toString()).isEqualTo("[32]");
assertThat(Key.of(2.0).toString()).isEqualTo("[2.0]");
assertThat(Key.of("xyz").toString()).isEqualTo("[xyz]");
ByteArray b = ByteArray.copyFrom("xyz");
assertThat(Key.of(b).toString()).isEqualTo("[" + b.toString() + "]");
String timestamp = "2015-09-15T00:00:00Z";
assertThat(Key.of(Timestamp.parseTimestamp(timestamp)).toString())
.isEqualTo("[" + timestamp + "]");
String date = "2015-09-15";
assertThat(Key.of(Date.parseDate(date)).toString()).isEqualTo("[" + date + "]");
assertThat(Key.of(1, 2, 3).toString()).isEqualTo("[1,2,3]");
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void indexPointReadNotFound() {
Struct row =
client
.singleUse(TimestampBound.strong())
.readRowUsingIndex(TABLE_NAME, INDEX_NAME, Key.of("v999"), ALL_COLUMNS);
assertThat(row).isNull();
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void rollback() {
TransactionManager manager = client.transactionManager();
TransactionContext txn = manager.begin();
txn.buffer(
Mutation.newInsertBuilder("T").set("K").to("Key2").set("BoolValue").to(true).build());
manager.rollback();
assertThat(manager.getState()).isEqualTo(TransactionState.ROLLED_BACK);
// Row should not have been inserted.
assertThat(client.singleUse().readRow("T", Key.of("Key2"), Arrays.asList("K", "BoolValue")))
.isNull();
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void emptyRead() {
ResultSet resultSet =
client
.singleUse(TimestampBound.strong())
.read(
TABLE_NAME,
KeySet.range(KeyRange.closedOpen(Key.of("k99"), Key.of("z"))),
ALL_COLUMNS);
assertThat(resultSet.next()).isFalse();
assertThat(resultSet.getType()).isEqualTo(TABLE_TYPE);
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void indexEmptyRead() {
ResultSet resultSet =
client
.singleUse(TimestampBound.strong())
.readUsingIndex(
TABLE_NAME,
INDEX_NAME,
KeySet.range(KeyRange.closedOpen(Key.of("v99"), Key.of("z"))),
ALL_COLUMNS);
assertThat(resultSet.next()).isFalse();
assertThat(resultSet.getType()).isEqualTo(TABLE_TYPE);
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void testToString() {
assertThat(KeySet.all().toString()).isEqualTo("{<all>}");
assertThat(KeySet.singleKey(Key.of("x")).toString()).isEqualTo("{[x]}");
assertThat(KeySet.range(KeyRange.closedOpen(Key.of("a"), Key.of("z"))).toString())
.isEqualTo("{[[a],[z])}");
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void testToString() {
assertThat(KeyRange.closedOpen(Key.of("a"), Key.of("b")).toString()).isEqualTo("[[a],[b])");
assertThat(KeyRange.closedClosed(Key.of("a"), Key.of("b")).toString()).isEqualTo("[[a],[b]]");
assertThat(KeyRange.openOpen(Key.of("a"), Key.of("b")).toString()).isEqualTo("([a],[b])");
assertThat(KeyRange.openClosed(Key.of("a"), Key.of("b")).toString()).isEqualTo("([a],[b]]");
assertThat(KeyRange.closedClosed(Key.of(), Key.of()).toString()).isEqualTo("[[],[]]");
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void toBuilder() {
KeySet set = KeySet.singleKey(Key.of(1)).toBuilder().addKey(Key.of(2)).build();
assertThat(set.isAll()).isFalse();
assertThat(set.getKeys()).containsExactly(Key.of(1), Key.of(2)).inOrder();
assertThat(set.getRanges()).isEmpty();
set =
KeySet.range(KeyRange.closedOpen(Key.of("a"), Key.of("b")))
.toBuilder()
.addRange(KeyRange.closedOpen(Key.of("c"), Key.of("d")))
.build();
assertThat(set.isAll()).isFalse();
assertThat(set.getKeys()).isEmpty();
assertThat(set.getRanges())
.containsExactly(
KeyRange.closedOpen(Key.of("a"), Key.of("b")),
KeyRange.closedOpen(Key.of("c"), Key.of("d")))
.inOrder();
set = KeySet.all().toBuilder().addKey(Key.of(1)).build();
assertThat(set.isAll()).isTrue();
assertThat(set.getKeys()).containsExactly(Key.of(1));
assertThat(set.getRanges()).isEmpty();
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void range() {
KeySet set = KeySet.range(KeyRange.closedOpen(Key.of("a"), Key.of("b")));
assertThat(set.isAll()).isFalse();
assertThat(set.getKeys()).isEmpty();
assertThat(set.getRanges()).containsExactly(KeyRange.closedOpen(Key.of("a"), Key.of("b")));
}
代码示例来源:origin: googleapis/google-cloud-java
TransactionRunner runner = client.readWriteTransaction();
runner.run(callable);
fail("Expected user exception");
} catch (SpannerException e) {
assertThat(e.getErrorCode()).isEqualTo(ErrorCode.UNKNOWN);
assertThat(e.getMessage()).contains("failing to commit");
assertThat(e.getCause()).isInstanceOf(UserException.class);
.singleUse(TimestampBound.strong())
.read("T", KeySet.range(KeyRange.prefix(Key.of("boo"))), Arrays.asList("K"));
assertThat(resultSet.next()).isFalse();
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void builder() {
KeySet set =
KeySet.newBuilder()
.addKey(Key.of("k1"))
.addKey(Key.of("k2"))
.addRange(KeyRange.closedOpen(Key.of("r1"), Key.of("rr1")))
.addRange(KeyRange.closedOpen(Key.of("r2"), Key.of("rr2")))
.build();
assertThat(set.isAll()).isFalse();
// Order isn't strictly important to the API, but it's helpful to preserve it.
assertThat(set.getKeys()).containsExactly(Key.of("k1"), Key.of("k2")).inOrder();
assertThat(set.getRanges())
.containsExactly(
KeyRange.closedOpen(Key.of("r1"), Key.of("rr1")),
KeyRange.closedOpen(Key.of("r2"), Key.of("rr2")))
.inOrder();
assertThat(set.toString()).isEqualTo("{[k1],[k2],[[r1],[rr1]),[[r2],[rr2])}");
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void prefixRange() {
KeySet set = KeySet.prefixRange(Key.of("a", "b"));
assertThat(set.isAll()).isFalse();
assertThat(set.getKeys()).isEmpty();
assertThat(set.getRanges()).containsExactly(KeyRange.prefix(Key.of("a", "b")));
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void rowsAreSnapshots() {
List<Struct> rows = new ArrayList<>();
ResultSet resultSet =
client
.singleUse(TimestampBound.strong())
.read(
TABLE_NAME,
KeySet.newBuilder()
.addKey(Key.of("k2"))
.addKey(Key.of("k3"))
.addKey(Key.of("k4"))
.build(),
ALL_COLUMNS);
while (resultSet.next()) {
rows.add(resultSet.getCurrentRowAsStruct());
}
assertThat(rows.size()).isEqualTo(3);
assertThat(rows.get(0).getString(0)).isEqualTo("k2");
assertThat(rows.get(0).getString(1)).isEqualTo("v2");
assertThat(rows.get(1).getString(0)).isEqualTo("k3");
assertThat(rows.get(1).getString(1)).isEqualTo("v3");
assertThat(rows.get(2).getString(0)).isEqualTo("k4");
assertThat(rows.get(2).getString(1)).isEqualTo("v4");
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void singleKey() {
KeySet set = KeySet.singleKey(Key.of("a", "b", "c"));
assertThat(set.isAll()).isFalse();
assertThat(set.getKeys()).containsExactly(Key.of("a", "b", "c"));
assertThat(set.getRanges()).isEmpty();
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void toProtoCoalescingDelete() {
List<Mutation> mutations =
Arrays.asList(
Mutation.delete("T", Key.of("k1")),
Mutation.delete("T", Key.of("k2")),
Mutation.delete("T", KeySet.range(KeyRange.closedOpen(Key.of("ka"), Key.of("kb")))),
Mutation.delete("T", KeySet.range(KeyRange.closedClosed(Key.of("kc"), Key.of("kd")))));
List<com.google.spanner.v1.Mutation> proto = new ArrayList<>();
Mutation.toProto(mutations, proto);
assertThat(proto.size()).isEqualTo(1);
MatcherAssert.assertThat(
proto.get(0),
matchesProto(
"delete {"
+ " table: 'T'"
+ " key_set {"
+ " keys { values { string_value: 'k1' } }"
+ " keys { values { string_value: 'k2' } }"
+ " ranges { start_closed { values { string_value: 'ka' } } "
+ " end_open { values { string_value: 'kb' } } }"
+ " ranges { start_closed { values { string_value: 'kc' } } "
+ " end_closed { values { string_value: 'kd' } } }"
+ " }"
+ "} "));
}
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void delete() {
KeySet keySet = KeySet.singleKey(Key.of("k1"));
Mutation m = Mutation.delete("T1", keySet);
assertThat(m.getOperation()).isEqualTo(Mutation.Op.DELETE);
assertThat(m.getKeySet()).isEqualTo(keySet);
assertThat(m.toString()).isEqualTo("delete(T1{[k1]})");
}
代码示例来源:origin: googleapis/google-cloud-java
@Override
public Void run(TransactionContext transaction) {
long rowCount =
transaction.executeUpdate(Statement.of("UPDATE T SET v = v * 2 WHERE k = 'boo2';"));
assertThat(rowCount).isEqualTo(1);
assertThat(transaction.readRow("T", Key.of("boo2"), Arrays.asList("v")).getLong(0))
.isEqualTo(2 * 2);
return null;
}
};
代码示例来源:origin: googleapis/google-cloud-java
@Test
public void singleUseReadOnlyTransactionDoesntReturnTransactionMetadata() {
PartialResultSet resultSet =
PartialResultSet.newBuilder()
.setMetadata(newMetadata(Type.struct(Type.StructField.of("C", Type.string()))))
.build();
mockRead(resultSet);
ReadOnlyTransaction txn = session.singleUseReadOnlyTransaction(TimestampBound.strong());
assertThat(txn.readRow("Dummy", Key.of(), Arrays.asList("C"))).isNull();
// For now, getReadTimestamp() will raise an ISE because it hasn't seen a timestamp. It would
// be better for the read to fail with an INTERNAL error, but we can't do that until txn
// metadata is returned for failed reads (e.g., table-not-found) as well as successful ones.
// TODO(user): Fix this.
expectedException.expect(IllegalStateException.class);
txn.getReadTimestamp();
}
内容来源于网络,如有侵权,请联系作者删除!