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);
}
};
}