com.vladmihalcea.hibernate.type.json
Class JsonBlobType

java.lang.Object
  extended by org.hibernate.type.AbstractStandardBasicType<T>
      extended by org.hibernate.type.AbstractSingleColumnStandardBasicType<T>
          extended by com.vladmihalcea.hibernate.type.AbstractHibernateType<Object>
              extended by com.vladmihalcea.hibernate.type.json.JsonBlobType
All Implemented Interfaces:
Serializable, org.hibernate.type.BasicType, org.hibernate.type.ProcedureParameterExtractionAware<Object>, org.hibernate.type.ProcedureParameterNamedBinder, org.hibernate.type.SingleColumnType<Object>, org.hibernate.type.StringRepresentableType<Object>, org.hibernate.type.Type, org.hibernate.usertype.DynamicParameterizedType, org.hibernate.usertype.ParameterizedType

public class JsonBlobType
extends AbstractHibernateType<Object>
implements org.hibernate.usertype.DynamicParameterizedType

Maps any given Java object on a JSON column type that is managed via PreparedStatement.setBlob(int, Blob) at JDBC Driver level.

If you are using Oracle, you can use this JsonBlobType to map a 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 JsonType instead.

Author:
Vlad Mihalcea
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.hibernate.usertype.DynamicParameterizedType
org.hibernate.usertype.DynamicParameterizedType.ParameterType
 
Field Summary
static JsonBlobType INSTANCE
           
 
Fields inherited from interface org.hibernate.usertype.DynamicParameterizedType
ACCESS_TYPE, ENTITY, IS_DYNAMIC, IS_PRIMARY_KEY, PARAMETER_TYPE, PROPERTY, RETURNED_CLASS, XPROPERTY
 
Constructor Summary
JsonBlobType()
           
JsonBlobType(Configuration configuration)
           
JsonBlobType(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
           
JsonBlobType(com.fasterxml.jackson.databind.ObjectMapper objectMapper, Type javaType)
           
JsonBlobType(ObjectMapperWrapper objectMapperWrapper)
           
JsonBlobType(ObjectMapperWrapper objectMapperWrapper, Type javaType)
           
JsonBlobType(Type javaType)
           
 
Method Summary
 String getName()
           
 void setParameterValues(Properties parameters)
           
 
Methods inherited from class com.vladmihalcea.hibernate.type.AbstractHibernateType
getConfiguration
 
Methods inherited from class org.hibernate.type.AbstractSingleColumnStandardBasicType
nullSafeSet, sqlType
 
Methods inherited from class org.hibernate.type.AbstractStandardBasicType
assemble, beforeAssemble, canDoExtraction, canDoSetting, compare, deepCopy, deepCopy, defaultSizes, dictatedSizes, disassemble, extract, extract, fromString, fromStringValue, get, getColumnSpan, getDefaultSize, getDictatedSize, getHashCode, getHashCode, getJavaTypeDescriptor, getMutabilityPlan, getRegistrationKeys, getReplacement, getReturnedClass, getSemiResolvedType, getSqlTypeDescriptor, hydrate, isAnyType, isAssociationType, isCollectionType, isComponentType, isDirty, isDirty, isDirty, isEntityType, isEqual, isEqual, isModified, isMutable, isSame, isXMLElement, nullSafeGet, nullSafeGet, nullSafeGet, nullSafeGet, nullSafeSet, nullSafeSet, nullSafeSet, nullSafeSet, registerUnderJavaType, remapSqlTypeDescriptor, replace, replace, resolve, semiResolve, set, setJavaTypeDescriptor, setSqlTypeDescriptor, sqlTypes, toColumnNullness, toLoggableString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.hibernate.type.SingleColumnType
fromStringValue, get, nullSafeGet, set, toString
 
Methods inherited from interface org.hibernate.type.Type
assemble, beforeAssemble, compare, deepCopy, defaultSizes, dictatedSizes, disassemble, getColumnSpan, getHashCode, getHashCode, getReturnedClass, getSemiResolvedType, hydrate, isAnyType, isAssociationType, isCollectionType, isComponentType, isDirty, isDirty, isEntityType, isEqual, isEqual, isModified, isMutable, isSame, nullSafeGet, nullSafeGet, nullSafeSet, replace, replace, resolve, semiResolve, sqlTypes, toColumnNullness, toLoggableString
 

Field Detail

INSTANCE

public static final JsonBlobType INSTANCE
Constructor Detail

JsonBlobType

public JsonBlobType()

JsonBlobType

public JsonBlobType(Type javaType)

JsonBlobType

public JsonBlobType(Configuration configuration)

JsonBlobType

public JsonBlobType(com.fasterxml.jackson.databind.ObjectMapper objectMapper)

JsonBlobType

public JsonBlobType(ObjectMapperWrapper objectMapperWrapper)

JsonBlobType

public JsonBlobType(com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                    Type javaType)

JsonBlobType

public JsonBlobType(ObjectMapperWrapper objectMapperWrapper,
                    Type javaType)
Method Detail

getName

public String getName()
Specified by:
getName in interface org.hibernate.type.Type

setParameterValues

public void setParameterValues(Properties parameters)
Specified by:
setParameterValues in interface org.hibernate.usertype.ParameterizedType


Copyright © 2021. All rights reserved.