Post-rebase.
This commit is contained in:
@@ -52,7 +52,6 @@ public interface ReactiveResultSet {
|
||||
* The {@link Flux} will stream over all records that in this {@link ReactiveResultSet} according to the reactive
|
||||
* demand and fetch next result chunks by issuing the underlying query with the current {@link java.nio.ByteBuffer
|
||||
* paging state} applied.
|
||||
* <p>
|
||||
*
|
||||
* @return a {@link Flux} of rows that will stream over all {@link Row rows} of the entire result.
|
||||
*/
|
||||
|
||||
@@ -66,7 +66,6 @@ public interface ReactiveSession extends Closeable {
|
||||
* <p>
|
||||
* If a metadata refresh triggers events (such as node added/removed, or schema events), then the new version of the
|
||||
* metadata is guaranteed to be visible by the time you receive these events.
|
||||
* <p>
|
||||
*
|
||||
* @return never {@code null}, but may be empty if metadata has been disabled in the configuration.
|
||||
* @since 3.2.2
|
||||
|
||||
@@ -37,19 +37,8 @@ import org.springframework.core.annotation.MergedAnnotations;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
import org.springframework.dao.InvalidDataAccessApiUsageException;
|
||||
import org.springframework.data.cassandra.core.mapping.BasicCassandraPersistentEntity;
|
||||
import org.springframework.data.cassandra.core.mapping.BasicMapId;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraPersistentEntity;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraPersistentProperty;
|
||||
import org.springframework.data.cassandra.core.mapping.Column;
|
||||
import org.springframework.data.cassandra.core.mapping.Element;
|
||||
import org.springframework.data.cassandra.core.mapping.Embedded;
|
||||
import org.springframework.data.cassandra.core.mapping.*;
|
||||
import org.springframework.data.cassandra.core.mapping.Embedded.OnEmpty;
|
||||
import org.springframework.data.cassandra.core.mapping.EmbeddedEntityOperations;
|
||||
import org.springframework.data.cassandra.core.mapping.MapId;
|
||||
import org.springframework.data.cassandra.core.mapping.MapIdentifiable;
|
||||
import org.springframework.data.cassandra.core.mapping.UserTypeResolver;
|
||||
import org.springframework.data.convert.CustomConversions;
|
||||
import org.springframework.data.mapping.AccessOptions;
|
||||
import org.springframework.data.mapping.MappingException;
|
||||
@@ -143,22 +132,22 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
this.mappingContext = mappingContext;
|
||||
this.setCodecRegistry(mappingContext.getCodecRegistry());
|
||||
this.setCustomConversions(mappingContext.getCustomConversions());
|
||||
this.cassandraTypeResolver = new DefaultColumnTypeResolver(mappingContext, userTypeResolver,
|
||||
this::getCodecRegistry, this::getCustomConversions);
|
||||
this.cassandraTypeResolver = new DefaultColumnTypeResolver(mappingContext, userTypeResolver, this::getCodecRegistry,
|
||||
this::getCustomConversions);
|
||||
this.embeddedEntityOperations = new EmbeddedEntityOperations(mappingContext);
|
||||
this.spELContext = new SpELContext(RowReaderPropertyAccessor.INSTANCE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new instance of {@link ConversionContext} with various converters to convert different Cassandra
|
||||
* value types.
|
||||
* Constructs a new instance of {@link ConversionContext} with various converters to convert different Cassandra value
|
||||
* types.
|
||||
*
|
||||
* @return the {@link ConversionContext}.
|
||||
* @see ConversionContext
|
||||
*/
|
||||
protected ConversionContext getConversionContext() {
|
||||
|
||||
return new ConversionContext(this::doReadRow, this::doReadTupleValue, this::doReadUdtValue,
|
||||
return new ConversionContext(getCustomConversions(), this::doReadRow, this::doReadTupleValue, this::doReadUdtValue,
|
||||
this::readCollectionOrArray, this::readMap, this::getPotentiallyConvertedSimpleRead);
|
||||
}
|
||||
|
||||
@@ -184,7 +173,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
return mappingContext;
|
||||
}
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
|
||||
*/
|
||||
@@ -501,8 +489,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
return (S) getConversionService().convert(valueProvider.getSource(), rawType);
|
||||
}
|
||||
|
||||
CassandraPersistentEntity<S> entity =
|
||||
(CassandraPersistentEntity<S>) getMappingContext().getPersistentEntity(typeHint);
|
||||
CassandraPersistentEntity<S> entity = (CassandraPersistentEntity<S>) getMappingContext()
|
||||
.getPersistentEntity(typeHint);
|
||||
|
||||
if (entity == null) {
|
||||
throw new MappingException(
|
||||
@@ -527,8 +515,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
return UdtValue.class;
|
||||
}
|
||||
|
||||
throw new InvalidDataAccessApiUsageException(String.format("Unsupported source type: %s",
|
||||
ClassUtils.getDescriptiveType(valueProvider.getSource())));
|
||||
throw new InvalidDataAccessApiUsageException(
|
||||
String.format("Unsupported source type: %s", ClassUtils.getDescriptiveType(valueProvider.getSource())));
|
||||
}
|
||||
|
||||
private <S> S doReadEntity(ConversionContext context, CassandraValueProvider valueProvider,
|
||||
@@ -539,8 +527,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
|
||||
if (persistenceConstructor != null && persistenceConstructor.hasParameters()) {
|
||||
SpELExpressionEvaluator evaluator = new DefaultSpELExpressionEvaluator(valueProvider.getSource(), spELContext);
|
||||
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider =
|
||||
newParameterValueProvider(context, entity, valueProvider);
|
||||
ParameterValueProvider<CassandraPersistentProperty> parameterValueProvider = newParameterValueProvider(context,
|
||||
entity, valueProvider);
|
||||
provider = new ConverterAwareSpELExpressionParameterValueProvider(evaluator, getConversionService(),
|
||||
parameterValueProvider, context);
|
||||
} else {
|
||||
@@ -927,8 +915,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
|
||||
if (getCustomConversions().hasCustomWriteTarget(value.getClass(), requestedTargetType)) {
|
||||
|
||||
Class<?> resolvedTargetType = getCustomConversions()
|
||||
.getCustomWriteTarget(value.getClass(), requestedTargetType)
|
||||
Class<?> resolvedTargetType = getCustomConversions().getCustomWriteTarget(value.getClass(), requestedTargetType)
|
||||
.orElse(requestedTargetType);
|
||||
|
||||
return getConversionService().convert(value, resolvedTargetType);
|
||||
@@ -936,11 +923,9 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
|
||||
if (getCustomConversions().hasCustomWriteTarget(value.getClass())) {
|
||||
|
||||
Class<?> resolvedTargetType = getCustomConversions()
|
||||
.getCustomWriteTarget(value.getClass())
|
||||
.orElseThrow(() -> new IllegalStateException(
|
||||
String.format("Unable to determined custom write target for value type [%s]",
|
||||
value.getClass().getName())));
|
||||
Class<?> resolvedTargetType = getCustomConversions().getCustomWriteTarget(value.getClass())
|
||||
.orElseThrow(() -> new IllegalStateException(String
|
||||
.format("Unable to determined custom write target for value type [%s]", value.getClass().getName())));
|
||||
|
||||
return getConversionService().convert(value, resolvedTargetType);
|
||||
}
|
||||
@@ -1318,10 +1303,9 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
|
||||
final ValueConverter<Object> elementConverter;
|
||||
|
||||
public ConversionContext(org.springframework.data.convert.CustomConversions conversions,
|
||||
ContainerValueConverter<Row> rowConverter,
|
||||
ContainerValueConverter<TupleValue> tupleConverter, ContainerValueConverter<UdtValue> udtConverter,
|
||||
ContainerValueConverter<Collection<?>> collectionConverter, ContainerValueConverter<Map<?, ?>> mapConverter,
|
||||
ValueConverter<Object> elementConverter) {
|
||||
ContainerValueConverter<Row> rowConverter, ContainerValueConverter<TupleValue> tupleConverter,
|
||||
ContainerValueConverter<UdtValue> udtConverter, ContainerValueConverter<Collection<?>> collectionConverter,
|
||||
ContainerValueConverter<Map<?, ?>> mapConverter, ValueConverter<Object> elementConverter) {
|
||||
this.conversions = conversions;
|
||||
this.rowConverter = rowConverter;
|
||||
this.tupleConverter = tupleConverter;
|
||||
|
||||
@@ -61,7 +61,6 @@ import com.datastax.oss.driver.api.core.metadata.Metadata;
|
||||
* <p>
|
||||
* All CQL operations performed by this class are logged at debug level, using
|
||||
* {@code org.springframework.data.cassandra.core.cql.DefaultBridgedReactiveSession} as log category.
|
||||
* <p>
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author Mateusz Stefek
|
||||
|
||||
@@ -414,7 +414,7 @@ public class CassandraMappingContext
|
||||
* Returns whether this mapping context has any entities mapped to the given table.
|
||||
*
|
||||
* @param name must not be {@literal null}.
|
||||
* @return @return {@literal true} is this {@literal TableMetadata} is used by a mapping.
|
||||
* @return {@literal true} is this {@literal TableMetadata} is used by a mapping.
|
||||
*/
|
||||
public boolean usesTable(CqlIdentifier name) {
|
||||
|
||||
|
||||
@@ -15,10 +15,16 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.core.convert;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
import static org.springframework.data.cassandra.core.mapping.BasicMapId.id;
|
||||
import static org.springframework.data.cassandra.test.util.RowMockUtil.column;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.BasicMapId.*;
|
||||
import static org.springframework.data.cassandra.test.util.RowMockUtil.*;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
@@ -30,18 +36,7 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
@@ -55,18 +50,8 @@ import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.ReadOnlyProperty;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
|
||||
import org.springframework.data.cassandra.core.mapping.BasicMapId;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.*;
|
||||
import org.springframework.data.cassandra.core.mapping.Column;
|
||||
import org.springframework.data.cassandra.core.mapping.Element;
|
||||
import org.springframework.data.cassandra.core.mapping.Embedded;
|
||||
import org.springframework.data.cassandra.core.mapping.MapId;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKeyClass;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;
|
||||
import org.springframework.data.cassandra.core.mapping.Table;
|
||||
import org.springframework.data.cassandra.core.mapping.Tuple;
|
||||
import org.springframework.data.cassandra.domain.AllPossibleTypes;
|
||||
import org.springframework.data.cassandra.domain.CompositeKey;
|
||||
import org.springframework.data.cassandra.domain.TypeWithCompositeKey;
|
||||
@@ -85,13 +70,6 @@ import com.datastax.oss.driver.api.core.type.DataTypes;
|
||||
import com.datastax.oss.driver.internal.core.data.DefaultTupleValue;
|
||||
import com.datastax.oss.driver.internal.core.type.DefaultTupleType;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link MappingCassandraConverter}.
|
||||
*
|
||||
@@ -1194,9 +1172,8 @@ public class MappingCassandraConverterUnitTests {
|
||||
@CassandraType(type = CassandraType.Name.SET,
|
||||
typeArguments = CassandraType.Name.INT) private Set<Condition> conditionSet;
|
||||
|
||||
@CassandraType(type = CassandraType.Name.MAP,
|
||||
typeArguments = { CassandraType.Name.INT,
|
||||
CassandraType.Name.INT }) private Map<Condition, Condition> conditionMap;
|
||||
@CassandraType(type = CassandraType.Name.MAP, typeArguments = { CassandraType.Name.INT,
|
||||
CassandraType.Name.INT }) private Map<Condition, Condition> conditionMap;
|
||||
|
||||
}
|
||||
|
||||
@@ -1367,7 +1344,8 @@ public class MappingCassandraConverterUnitTests {
|
||||
Row source = RowMockUtil.newRowMock(column("id", "id-1", DataTypes.TEXT), column("prefixage", 30, DataTypes.INT),
|
||||
column("prefixfirstname", "fn", DataTypes.TEXT));
|
||||
|
||||
WithPrefixedNullableEmbeddedType target = mappingCassandraConverter.read(WithPrefixedNullableEmbeddedType.class, source);
|
||||
WithPrefixedNullableEmbeddedType target = mappingCassandraConverter.read(WithPrefixedNullableEmbeddedType.class,
|
||||
source);
|
||||
assertThat(target.nested).isEqualTo(new EmbeddedWithSimpleTypes("fn", 30, null));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user