public ValueBinder getBinder()

in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/SpannerDialect.java [110:140]


    public <X> ValueBinder<X> getBinder(JavaType<X> javaType) {
      return new BasicBinder<X>(javaType, this) {
        @Override
        protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options)
            throws SQLException {
          final String json =
              ((SpannerJsonJdbcType) getJdbcType()).toString(value, getJavaType(), options);
          st.setObject(index, json, JsonType.VENDOR_TYPE_NUMBER);
        }

        @Override
        protected void doBind(CallableStatement st, X value, String name, WrapperOptions options)
            throws SQLException {
          final String json =
              ((SpannerJsonJdbcType) getJdbcType()).toString(value, getJavaType(), options);
          st.setObject(name, json, JsonType.VENDOR_TYPE_NUMBER);
        }

        @Override
        protected void doBindNull(PreparedStatement st, int index, WrapperOptions options)
            throws SQLException {
          st.setNull(index, JsonType.VENDOR_TYPE_NUMBER);
        }

        @Override
        protected void doBindNull(CallableStatement st, String name, WrapperOptions options)
            throws SQLException {
          st.setNull(name, JsonType.VENDOR_TYPE_NUMBER);
        }
      };
    }