in cloud-spanner-r2dbc/src/main/java/com/google/cloud/spanner/r2dbc/v2/SpannerClientLibraryConnection.java [62:75]
public Publisher<Void> beginTransaction(TransactionDefinition definition) {
IsolationLevel isolationLevel = firstNonNull(definition.getAttribute(ISOLATION_LEVEL),
SERIALIZABLE);
return validateIsolation(isolationLevel)
.then(Mono.defer(() -> {
boolean isReadOnly = TRUE.equals(definition.getAttribute(READ_ONLY));
if (isReadOnly) {
TimestampBound timestampBound = firstNonNull(definition.getAttribute(TIMESTAMP_BOUND),
TimestampBound.strong());
return this.clientLibraryAdapter.beginReadonlyTransaction(timestampBound);
}
return this.clientLibraryAdapter.beginTransaction();
}));
}