Class QueryParameterValue

  • All Implemented Interfaces:
    Serializable

    public abstract class QueryParameterValue
    extends Object
    implements Serializable
    A value for a QueryParameter along with its type.

    A static factory method is provided for each of the possible types (e.g. int64(Long) for StandardSQLTypeName.INT64). Alternatively, an instance can be constructed by calling of(Object, Class) with the value and a Class object, which will use these mappings:

    • Boolean: StandardSQLTypeName.BOOL
    • String: StandardSQLTypeName.STRING
    • Integer: StandardSQLTypeName.INT64
    • Long: StandardSQLTypeName.INT64
    • Double: StandardSQLTypeName.FLOAT64
    • Float: StandardSQLTypeName.FLOAT64
    • BigDecimal: StandardSQLTypeName.NUMERIC
    • BigNumeric: StandardSQLTypeName.BIGNUMERIC
    • JSON: StandardSQLTypeName.JSON
    • INTERVAL: StandardSQLTypeName.INTERVAL

    No other types are supported through that entry point. The other types can be created by calling of(Object, StandardSQLTypeName) with the value and a particular StandardSQLTypeName enum value.

    Struct parameters are currently not supported.

    See Also:
    Serialized Form
    • Method Detail

      • getValue

        @Nullable
        public abstract String getValue()
        Returns the value of this parameter.
      • getArrayValues

        @Nullable
        public List<QueryParameterValue> getArrayValues()
        Returns the array values of this parameter. The returned list, if not null, is immutable.
      • getType

        public abstract StandardSQLTypeName getType()
        Returns the data type of this parameter.
      • of

        public static <T> QueryParameterValue of​(T value,
                                                 Class<T> type)
        Creates a QueryParameterValue object with the given value and type. Note: this does not support BigNumeric
      • int64

        public static QueryParameterValue int64​(Long value)
        Creates a QueryParameterValue object with a type of INT64.
      • float64

        public static QueryParameterValue float64​(Double value)
        Creates a QueryParameterValue object with a type of FLOAT64.
      • float64

        public static QueryParameterValue float64​(Float value)
        Creates a QueryParameterValue object with a type of FLOAT64.
      • bigNumeric

        public static QueryParameterValue bigNumeric​(BigDecimal value)
        Creates a QueryParameterValue object with a type of BIGNUMERIC.
      • string

        public static QueryParameterValue string​(String value)
        Creates a QueryParameterValue object with a type of STRING.
      • geography

        public static QueryParameterValue geography​(String value)
        Creates a QueryParameterValue object with a type of GEOGRAPHY.
      • json

        public static QueryParameterValue json​(String value)
        Creates a QueryParameterValue object with a type of JSON. Currently, this is only supported in INSERT, not in query as a filter
      • json

        public static QueryParameterValue json​(com.google.gson.JsonObject value)
        Creates a QueryParameterValue object with a type of JSON. Currently, this is only supported in INSERT, not in query as a filter
      • bytes

        public static QueryParameterValue bytes​(byte[] value)
        Creates a QueryParameterValue object with a type of BYTES.
      • timestamp

        public static QueryParameterValue timestamp​(Long value)
        Creates a QueryParameterValue object with a type of TIMESTAMP.
      • timestamp

        public static QueryParameterValue timestamp​(String value)
        Creates a QueryParameterValue object with a type of TIMESTAMP. Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSSZZ", e.g. "2014-08-19 12:41:35.220000+00:00".
      • date

        public static QueryParameterValue date​(String value)
        Creates a QueryParameterValue object with a type of DATE. Must be in the format "yyyy-MM-dd", e.g. "2014-08-19".
      • time

        public static QueryParameterValue time​(String value)
        Creates a QueryParameterValue object with a type of TIME. Must be in the format "HH:mm:ss.SSSSSS", e.g. "12:41:35.220000".
      • dateTime

        public static QueryParameterValue dateTime​(String value)
        Creates a QueryParameterValue object with a type of DATETIME. Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. "2014-08-19 12:41:35.220000".
      • interval

        public static QueryParameterValue interval​(String value)
        Creates a QueryParameterValue object with a type of INTERVAL. Must be in the canonical format "[sign]Y-M [sign]D [sign]H:M:S[.F]", e.g. "123-7 -19 0:24:12.000006" or ISO 8601 duration format, e.g. "P123Y7M-19DT0H24M12.000006S"
      • interval

        public static QueryParameterValue interval​(org.threeten.extra.PeriodDuration value)
        Creates a QueryParameterValue object with a type of INTERVAL.
      • array

        public static <T> QueryParameterValue array​(T[] array,
                                                    Class<T> clazz)
        Creates a QueryParameterValue object with a type of ARRAY, and an array element type based on the given class.
      • toBuilder

        public abstract QueryParameterValue.Builder toBuilder()
        Returns a builder for a QueryParameterValue object with given value.