public class JsonType extends AbstractHibernateType<Object> implements org.hibernate.usertype.DynamicParameterizedType
JsonType
allows you to map any given JSON object (e.g., POJO, Map<String, Object>
, List<T>, JsonNode
) on any of the following database systems:
jsonb
and json
column typesjson
column typeNVARCHAR
column type storing JSONJSON
column type if you're using Oracle 21c or the VARCHAR
column type storing JSON if you're using an older Oracle versionjson
column type
If you switch to Oracle 21c from an older version, then you should also migrate your JSON
columns to the native JSON type since this binary type performs better than
VARCHAR2
or BLOB
column types.
However, if you don't want to migrate to the new JSON
data type,
then you just have to provide the column type via the JPA Column.columnDefinition()
attribute,
like in the following example:
@Type(
type = "com.vladmihalcea.hibernate.type.json.JsonType")@Column(
columnDefinition = "VARCHAR2")
For more details about how to use the JsonType
, check out this article on vladmihalcea.com.
If you are using Oracle and want to store JSON objects in a BLOB
column type, then you can use the JsonBlobType
instead. For more details, check out this article on vladmihalcea.com.
Or, you can use the JsonType
, but you'll have to specify the underlying column type
using the JPA Column.columnDefinition()
attribute, like this:
@Type(
type = "com.vladmihalcea.hibernate.type.json.JsonType")@Column(
columnDefinition = "BLOB")
Constructor and Description |
---|
JsonType() |
JsonType(Configuration configuration) |
JsonType(com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
JsonType(com.fasterxml.jackson.databind.ObjectMapper objectMapper,
Type javaType) |
JsonType(ObjectMapperWrapper objectMapperWrapper) |
JsonType(ObjectMapperWrapper objectMapperWrapper,
Type javaType) |
JsonType(Type javaType) |
Modifier and Type | Method and Description |
---|---|
String |
getName() |
void |
setParameterValues(Properties parameters) |
getConfiguration
nullSafeSet, sqlType
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
fromStringValue, get, nullSafeGet, set, toString
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, resolve, semiResolve, sqlTypes, toColumnNullness, toLoggableString
public static final JsonType INSTANCE
public JsonType()
public JsonType(Type javaType)
public JsonType(Configuration configuration)
public JsonType(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
public JsonType(ObjectMapperWrapper objectMapperWrapper)
public JsonType(com.fasterxml.jackson.databind.ObjectMapper objectMapper, Type javaType)
public JsonType(ObjectMapperWrapper objectMapperWrapper, Type javaType)
public String getName()
getName
in interface org.hibernate.type.Type
public void setParameterValues(Properties parameters)
setParameterValues
in interface org.hibernate.usertype.ParameterizedType
Copyright © 2022. All rights reserved.