Class 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:
    Serialized Form
    • Method Detail

      • 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.
      • 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.
      • 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.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object