All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.vladmihalcea.hibernate.type.json.JsonBlobType Maven / Gradle / Ivy

There is a newer version: 2.21.1
Show newest version
package com.vladmihalcea.hibernate.type.json;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.vladmihalcea.hibernate.type.MutableDynamicParameterizedType;
import com.vladmihalcea.hibernate.type.json.internal.JsonBlobJdbcTypeDescriptor;
import com.vladmihalcea.hibernate.type.json.internal.JsonJavaTypeDescriptor;
import com.vladmihalcea.hibernate.type.util.Configuration;
import com.vladmihalcea.hibernate.type.util.ObjectMapperWrapper;

import java.lang.reflect.Type;
import java.sql.Blob;

/**
 * 

* Maps any given Java object on a JSON column type that is managed via {@link java.sql.PreparedStatement#setBlob(int, Blob)} at JDBC Driver level. *

*

* If you are using Oracle, you can use this {@link JsonBlobType} to map a {@code BLOB} column type storing JSON. *

*

* For more details about how to use it, check out this article on vladmihalcea.com. *

*

* If you want to use a more portable Hibernate Type that can work on Oracle, SQL Server, PostgreSQL, MySQL, or H2 without any configuration changes, then you should use the {@link JsonType} instead. *

* * @author Vlad Mihalcea */ public class JsonBlobType extends MutableDynamicParameterizedType { public static final JsonBlobType INSTANCE = new JsonBlobType(); public JsonBlobType() { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(Configuration.INSTANCE.getObjectMapperWrapper()) ); } public JsonBlobType(Type javaType) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(Configuration.INSTANCE.getObjectMapperWrapper(), javaType) ); } public JsonBlobType(Configuration configuration) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(configuration.getObjectMapperWrapper()) ); } public JsonBlobType(org.hibernate.type.spi.TypeBootstrapContext typeBootstrapContext) { this(new Configuration(typeBootstrapContext.getConfigurationSettings())); } public JsonBlobType(ObjectMapper objectMapper) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(new ObjectMapperWrapper(objectMapper)) ); } public JsonBlobType(ObjectMapperWrapper objectMapperWrapper) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(objectMapperWrapper) ); } public JsonBlobType(ObjectMapper objectMapper, Type javaType) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(new ObjectMapperWrapper(objectMapper), javaType) ); } public JsonBlobType(ObjectMapperWrapper objectMapperWrapper, Type javaType) { super( Object.class, JsonBlobJdbcTypeDescriptor.INSTANCE, new JsonJavaTypeDescriptor(objectMapperWrapper, javaType) ); } public String getName() { return "jsonb-lob"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy