diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java index 82f96e1e30..9f4fd0edaf 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java @@ -44,6 +44,7 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.relational.core.mapping.RelationalPersistentEntity; import org.springframework.data.relational.core.mapping.RelationalPersistentProperty; +import org.springframework.data.relational.core.sql.SqlIdentifier; import org.springframework.data.relational.domain.RowDocument; import org.springframework.data.util.TypeInformation; import org.springframework.lang.Nullable; @@ -224,7 +225,10 @@ private void writeSimpleInternal(OutboundRow sink, Object value, RelationalPersi Object result = getPotentiallyConvertedSimpleWrite(value); - sink.put(property.getColumnName(), + SqlIdentifier columnName = property.getColumnName(); + + sink.put(SqlIdentifier.unquoted(columnName.getReference()), +// sink.put(property.getColumnName(), Parameter.fromOrEmpty(result, getPotentiallyConvertedSimpleNullType(property.getType()))); } @@ -242,7 +246,10 @@ private void writePropertyInternal(OutboundRow sink, Object value, RelationalPer } List collectionInternal = createCollection(asCollection(value), property); - sink.put(property.getColumnName(), Parameter.from(collectionInternal)); +// sink.put(property.getColumnName(), Parameter.from(collectionInternal)); + SqlIdentifier columnName = property.getColumnName(); +// + sink.put(SqlIdentifier.unquoted(columnName.getReference()), Parameter.from(collectionInternal)); return; } @@ -299,7 +306,7 @@ private List writeCollectionInternal(Collection source, @Nullable Typ private void writeNullInternal(OutboundRow sink, RelationalPersistentProperty property) { - sink.put(property.getColumnName(), Parameter.empty(getPotentiallyConvertedSimpleNullType(property.getType()))); + sink.put(property.getColumnName().getReference(), Parameter.empty(getPotentiallyConvertedSimpleNullType(property.getType()))); } private Class getPotentiallyConvertedSimpleNullType(Class type) { diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java index d655464e82..a2eacbfd15 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java @@ -181,11 +181,11 @@ public OutboundRow getOutboundRow(Object object) { for (RelationalPersistentProperty property : entity) { - Parameter value = row.get(property.getColumnName()); + Parameter value = row.get(property.getColumnName().getReference()); if (value != null && shouldConvertArrayValue(property, value)) { Parameter writeValue = getArrayValue(value, property); - row.put(property.getColumnName(), writeValue); + row.put(property.getColumnName().getReference(), writeValue); } } diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultStatementMapper.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultStatementMapper.java index a7fcf2a13e..cbdc288ae8 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultStatementMapper.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/DefaultStatementMapper.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.List; +import org.jetbrains.annotations.NotNull; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.r2dbc.convert.R2dbcConverter; import org.springframework.data.r2dbc.dialect.R2dbcDialect; @@ -25,6 +26,7 @@ import org.springframework.data.r2dbc.query.BoundCondition; import org.springframework.data.r2dbc.query.UpdateMapper; import org.springframework.data.relational.core.dialect.RenderContextFactory; +import org.springframework.data.relational.core.mapping.RelationalMappingContext; import org.springframework.data.relational.core.mapping.RelationalPersistentEntity; import org.springframework.data.relational.core.mapping.RelationalPersistentProperty; import org.springframework.data.relational.core.query.CriteriaDefinition; @@ -53,7 +55,7 @@ class DefaultStatementMapper implements StatementMapper { private final RenderContext renderContext; private final UpdateMapper updateMapper; private final MappingContext, ? extends RelationalPersistentProperty> mappingContext; - + private boolean forceQuote; DefaultStatementMapper(R2dbcDialect dialect, R2dbcConverter converter) { RenderContextFactory factory = new RenderContextFactory(dialect); @@ -62,6 +64,9 @@ class DefaultStatementMapper implements StatementMapper { this.renderContext = factory.createRenderContext(); this.updateMapper = new UpdateMapper(dialect, converter); this.mappingContext = converter.getMappingContext(); + if(mappingContext instanceof RelationalMappingContext relationalMappingContext){ + forceQuote = relationalMappingContext.isForceQuote(); + } } DefaultStatementMapper(R2dbcDialect dialect, RenderContext renderContext, UpdateMapper updateMapper, @@ -70,6 +75,9 @@ class DefaultStatementMapper implements StatementMapper { this.renderContext = renderContext; this.updateMapper = updateMapper; this.mappingContext = mappingContext; + if(mappingContext instanceof RelationalMappingContext relationalMappingContext){ + forceQuote = relationalMappingContext.isForceQuote(); + } } @Override @@ -90,7 +98,8 @@ public PreparedOperation getMappedObject(SelectSpec selectSpec) { private PreparedOperation