Module spring.data.jdbc
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.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.readValue(Object value, TypeInformation<?> type) writeJdbcValue(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.writeValue(Object value, TypeInformation<?> type) 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, setApplicationContextMethods inherited from class org.springframework.data.relational.core.conversion.AbstractRelationalConverter
getConversions, getConversionService, getEntityInstantiators, getMappingContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContextMethods inherited from interface org.springframework.data.jdbc.core.convert.JdbcConverter
getMappingContext, readAndResolve, readAndResolve, writeJdbcValueMethods inherited from interface org.springframework.data.relational.core.conversion.RelationalConverter
getConversionService, getEntityInstantiators, getPropertyAccessor, introspectProjection, project, read
-
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)(MappingContext, RelationResolver, 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
-
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
- Specified by:
readValuein interfaceorg.springframework.data.relational.core.conversion.RelationalConverter- Overrides:
readValuein classorg.springframework.data.relational.core.conversion.MappingRelationalConverter
-
writeValue
- Specified by:
writeValuein interfaceorg.springframework.data.relational.core.conversion.RelationalConverter- Overrides:
writeValuein 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.
-
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:
-
RelationalConverter.read(Class, RowDocument)
-
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
-