|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.hibernate.type.AbstractStandardBasicType<T>
org.hibernate.type.AbstractSingleColumnStandardBasicType<T>
com.vladmihalcea.hibernate.type.AbstractHibernateType<Object>
com.vladmihalcea.hibernate.type.json.JsonType
public class JsonType
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")
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.hibernate.usertype.DynamicParameterizedType |
|---|
org.hibernate.usertype.DynamicParameterizedType.ParameterType |
| Field Summary | |
|---|---|
static JsonType |
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 | |
|---|---|
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)
|
|
| 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, compare, deepCopy, deepCopy, defaultSizes, dictatedSizes, disassemble, extract, extract, fromString, fromStringValue, fromXMLNode, fromXMLString, 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, registerUnderJavaType, remapSqlTypeDescriptor, replace, replace, resolve, semiResolve, set, setJavaTypeDescriptor, setSqlTypeDescriptor, setToXMLNode, sqlTypes, toColumnNullness, toLoggableString, toString, toXMLString |
| 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, fromXMLNode, getColumnSpan, getHashCode, getHashCode, getReturnedClass, getSemiResolvedType, hydrate, isAnyType, isAssociationType, isCollectionType, isComponentType, isDirty, isDirty, isEntityType, isEqual, isEqual, isModified, isMutable, isSame, isXMLElement, nullSafeGet, nullSafeGet, nullSafeSet, replace, replace, resolve, semiResolve, setToXMLNode, sqlTypes, toColumnNullness, toLoggableString |
| Field Detail |
|---|
public static final JsonType INSTANCE
| Constructor Detail |
|---|
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)
| Method Detail |
|---|
public String getName()
getName in interface org.hibernate.type.Typepublic void setParameterValues(Properties parameters)
setParameterValues in interface org.hibernate.usertype.ParameterizedType
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||