Class MappingJdbcConverter
java.lang.Object
org.springframework.data.relational.core.conversion.AbstractRelationalConverter
org.springframework.data.relational.core.conversion.MappingRelationalConverter
org.springframework.data.jdbc.core.convert.MappingJdbcConverter
- All Implemented Interfaces:
Aware, ApplicationContextAware, EnvironmentCapable, JdbcConverter, org.springframework.data.relational.core.conversion.RelationalConverter
public class MappingJdbcConverter
extends org.springframework.data.relational.core.conversion.MappingRelationalConverter
implements JdbcConverter, ApplicationContextAware
RelationalConverter that uses a MappingContext to apply conversion of relational values to property
values.
Conversion is configurable by providing a customized CustomConversions.
- Since:
- 3.2
- Author:
- Mark Paluch, Jens Schauder, Christoph Strobl, Myeonghyeon Lee, Chirag Tailor
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.data.relational.core.conversion.MappingRelationalConverter
org.springframework.data.relational.core.conversion.MappingRelationalConverter.AggregatePathValueProvider, org.springframework.data.relational.core.conversion.MappingRelationalConverter.ConversionContext, org.springframework.data.relational.core.conversion.MappingRelationalConverter.DefaultConversionContext, org.springframework.data.relational.core.conversion.MappingRelationalConverter.DocumentValueProvider, org.springframework.data.relational.core.conversion.MappingRelationalConverter.ProjectingConversionContext, org.springframework.data.relational.core.conversion.MappingRelationalConverter.RelationalPropertyValueProvider -
Constructor Summary
ConstructorsConstructorDescriptionMappingJdbcConverter(org.springframework.data.relational.core.mapping.RelationalMappingContext context, RelationResolver relationResolver) Creates a newMappingJdbcConvertergivenMappingContextand ano-op type factorythrowingUnsupportedOperationExceptionon type creation.MappingJdbcConverter(org.springframework.data.relational.core.mapping.RelationalMappingContext context, RelationResolver relationResolver, CustomConversions conversions, JdbcTypeFactory typeFactory) Creates a newMappingJdbcConvertergivenMappingContext. -
Method Summary
Modifier and TypeMethodDescriptionClass<?> getColumnType(org.springframework.data.relational.core.mapping.RelationalPersistentProperty property) The type to be used to store this property in the database.protected @Nullable ObjectgetPotentiallyConvertedSimpleWrite(Object value, TypeInformation<?> type) getTargetSqlType(org.springframework.data.relational.core.mapping.RelationalPersistentProperty property) The SQL type constant used when using this property as a parameter for a SQL statement.protected org.springframework.data.relational.core.conversion.MappingRelationalConverter.RelationalPropertyValueProvidernewValueProvider(org.springframework.data.relational.core.conversion.RowDocumentAccessor documentAccessor, ValueExpressionEvaluator evaluator, org.springframework.data.relational.core.conversion.MappingRelationalConverter.ConversionContext context) <R> RreadAndResolve(TypeInformation<R> type, org.springframework.data.relational.domain.RowDocument source, Identifier identifier) Read aRowDocumentinto the requestedaggregate typeand resolve references by looking these up fromRelationResolver.@Nullable ObjectreadValue(@Nullable Object value, TypeInformation<?> targetType) Read and convert a single value that is coming from a database to the targetType expected by the domain model.voidsetExceptionTranslator(SQLExceptionTranslator exceptionTranslator) Set the exception translator for this instance.protected @Nullable ObjectUnwraps values of typeJdbcValue.writeJdbcValue(@Nullable Object value, TypeInformation<?> columnType, SQLType sqlType) Convert a property value into aJdbcValuethat contains the converted value and information how to bind it to JDBC parameters.Methods inherited from class org.springframework.data.relational.core.conversion.MappingRelationalConverter
doReadProjection, getConversionContext, getEnvironment, getPotentiallyConvertedSimpleRead, getPropertyAccessor, introspectProjection, newProjectingConversionContext, project, read, read, readAggregate, readAggregate, readCollectionOrArray, readMap, setApplicationContext, writeValueMethods inherited from class org.springframework.data.relational.core.conversion.AbstractRelationalConverter
getConversions, getConversionService, getEntityInstantiators, getMappingContextMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ApplicationContextAware
setApplicationContextMethods inherited from interface JdbcConverter
getMappingContext, readAndResolve, readAndResolve, writeJdbcValueMethods inherited from interface org.springframework.data.relational.core.conversion.RelationalConverter
getConversionService, getEntityInstantiators, getPropertyAccessor, introspectProjection, project, read, writeValue
-
Constructor Details
-
MappingJdbcConverter
public MappingJdbcConverter(org.springframework.data.relational.core.mapping.RelationalMappingContext context, RelationResolver relationResolver) Creates a newMappingJdbcConvertergivenMappingContextand ano-op type factorythrowingUnsupportedOperationExceptionon type creation. UseMappingJdbcConverter(RelationalMappingContext, RelationResolver, CustomConversions, JdbcTypeFactory)to convert arrays and large objects into JDBC-specific types.- Parameters:
context- must not be null.relationResolver- used to fetch additional relations from the database. Must not be null.
-
MappingJdbcConverter
public MappingJdbcConverter(org.springframework.data.relational.core.mapping.RelationalMappingContext context, RelationResolver relationResolver, CustomConversions conversions, JdbcTypeFactory typeFactory) Creates a newMappingJdbcConvertergivenMappingContext.- Parameters:
context- must not be null.relationResolver- used to fetch additional relations from the database. Must not be null.typeFactory- must not be null
-
-
Method Details
-
setExceptionTranslator
Set the exception translator for this instance. Defaults to aSQLErrorCodeSQLExceptionTranslator.- See Also:
-
getTargetSqlType
public SQLType getTargetSqlType(org.springframework.data.relational.core.mapping.RelationalPersistentProperty property) Description copied from interface:JdbcConverterThe SQL type constant used when using this property as a parameter for a SQL statement.- Specified by:
getTargetSqlTypein interfaceJdbcConverter- Returns:
- Must not be
null. - See Also:
-
getColumnType
public Class<?> getColumnType(org.springframework.data.relational.core.mapping.RelationalPersistentProperty property) Description copied from interface:JdbcConverterThe type to be used to store this property in the database. Multidimensional arrays are unwrapped to reflect a top-level array type (e.g.String[][]returnsString[]).- Specified by:
getColumnTypein interfaceJdbcConverter- Returns:
- a
Classthat is suitable for usage with JDBC drivers. - See Also:
-
readValue
Read and convert a single value that is coming from a database to the targetType expected by the domain model.- Specified by:
readValuein interfaceorg.springframework.data.relational.core.conversion.RelationalConverter- Overrides:
readValuein classorg.springframework.data.relational.core.conversion.MappingRelationalConverter- Parameters:
value- a value as it is returned by the driver accessing the persistence store. May benull.targetType-TypeInformationinto which the value is to be converted. Must not benull.- Returns:
-
getPotentiallyConvertedSimpleWrite
protected @Nullable Object getPotentiallyConvertedSimpleWrite(Object value, TypeInformation<?> type) - Overrides:
getPotentiallyConvertedSimpleWritein classorg.springframework.data.relational.core.conversion.MappingRelationalConverter
-
writeJdbcValue
public JdbcValue writeJdbcValue(@Nullable Object value, TypeInformation<?> columnType, SQLType sqlType) Description copied from interface:JdbcConverterConvert a property value into aJdbcValuethat contains the converted value and information how to bind it to JDBC parameters.- Specified by:
writeJdbcValuein interfaceJdbcConverter- Parameters:
value- a value as it is used in the object model. May benull.columnType-TypeInformationinto which the value is to be converted. Must not benull.sqlType- theSQLTypeto be used if non is specified by a converter.- Returns:
- The converted value wrapped in a
JdbcValue. Guaranteed to be not null.
-
unwrap
-
readAndResolve
public <R> R readAndResolve(TypeInformation<R> type, org.springframework.data.relational.domain.RowDocument source, Identifier identifier) Description copied from interface:JdbcConverterRead aRowDocumentinto the requestedaggregate typeand resolve references by looking these up fromRelationResolver.- Specified by:
readAndResolvein interfaceJdbcConverter- Type Parameters:
R- aggregate type.- Parameters:
type- target aggregate type.source- sourceRowDocument.identifier- identifier chain.- Returns:
- the converted object.
- See Also:
-
newValueProvider
protected org.springframework.data.relational.core.conversion.MappingRelationalConverter.RelationalPropertyValueProvider newValueProvider(org.springframework.data.relational.core.conversion.RowDocumentAccessor documentAccessor, ValueExpressionEvaluator evaluator, org.springframework.data.relational.core.conversion.MappingRelationalConverter.ConversionContext context) - Overrides:
newValueProviderin classorg.springframework.data.relational.core.conversion.MappingRelationalConverter
-