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 = "io.hypersistence.utils.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 = "io.hypersistence.utils.hibernate.type.json.JsonType")@Column(columnDefinition = "BLOB")
| Constructor and Description |
|---|
JsonType() |
JsonType(JsonConfiguration 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) |
getConfigurationnullSafeSet, sqlTypeassemble, 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, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitfromStringValue, get, nullSafeGet, set, toStringassemble, 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, toLoggableStringpublic static final JsonType INSTANCE
public JsonType()
public JsonType(Type javaType)
public JsonType(JsonConfiguration 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.Typepublic void setParameterValues(Properties parameters)
setParameterValues in interface org.hibernate.usertype.ParameterizedTypeCopyright © 2024. All rights reserved.