Class Mutation

java.lang.Object
com.google.cloud.spanner.Mutation
All Implemented Interfaces:
Serializable

public final class Mutation extends Object implements Serializable
Represents an individual table modification to be applied to Cloud Spanner.

The types of mutation that can be created are defined by Mutation.Op. To construct a mutation, use one of the builder methods. For example, to create a mutation that will insert a value of "x" into "C1" and a value of "y" into "C2" of table "T", write the following code:

     Mutation m = Mutation.newInsertBuilder("T")
         .set("C1").to("x")
         .set("C2").to("y")
         .build();
 
Mutations are applied to a database by performing a standalone write or buffering them as part of a transaction. TODO(user): Add links/code samples once the corresponding APIs are available.

Mutation instances are immutable.

See Also:
  • Method Details

    • newInsertBuilder

      public static Mutation.WriteBuilder newInsertBuilder(String table)
      Returns a builder that can be used to construct an Mutation.Op.INSERT mutation against table; see the INSERT documentation for mutation semantics.
    • newUpdateBuilder

      public static Mutation.WriteBuilder newUpdateBuilder(String table)
      Returns a builder that can be used to construct an Mutation.Op.UPDATE mutation against table; see the UPDATE documentation for mutation semantics.
    • newInsertOrUpdateBuilder

      public static Mutation.WriteBuilder newInsertOrUpdateBuilder(String table)
      Returns a builder that can be used to construct an Mutation.Op.INSERT_OR_UPDATE mutation against table; see the INSERT_OR_UPDATE documentation for mutation semantics.
    • newReplaceBuilder

      public static Mutation.WriteBuilder newReplaceBuilder(String table)
      Returns a builder that can be used to construct an Mutation.Op.REPLACE mutation against table; see the REPLACE documentation for mutation semantics.
    • delete

      public static Mutation delete(String table, Key key)
      Returns a mutation that will delete the row with primary key key. Exactly equivalent to delete(table, KeySet.singleKey(key)).
    • delete

      public static Mutation delete(String table, KeySet keySet)
      Returns a mutation that will delete all rows with primary keys covered by keySet.
    • getTable

      public String getTable()
      Returns the name of the table that this mutation will affect.
    • getOperation

      public Mutation.Op getOperation()
      Returns the type of operation that this mutation will perform.
    • getColumns

      public Iterable<String> getColumns()
      For all types except Mutation.Op.DELETE, returns the columns that this mutation will affect.
      Throws:
      IllegalStateException - if operation() == Op.DELETE
    • getValues

      public Iterable<Value> getValues()
      For all types except Mutation.Op.DELETE, returns the values that this mutation will write. The number of elements returned is always the same as the number returned by getColumns(), and the ith value corresponds to the ith column.
      Throws:
      IllegalStateException - if operation() == Op.DELETE
    • asMap

      public Map<String,Value> asMap()
      For all types except Mutation.Op.DELETE, constructs a map from column name to value. This is mainly intended as a convenience for testing; direct access via getColumns() and getValues() is more efficient.
      Throws:
      IllegalStateException - if operation() == Op.DELETE, or if any duplicate columns are present. Detection of duplicates does not consider case.
    • getKeySet

      public KeySet getKeySet()
      For Mutation.Op.DELETE mutations, returns the key set that defines the rows to be deleted.
      Throws:
      IllegalStateException - if operation() != Op.DELETE
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object