DATACASS-656 - Move Name enumeration to CassandraType.
CassandraType is a better place for the name enumeration as it provides the necessary context how Cassandra primitives are used than CassandraSimpleTypeHolder. Original pull request: #167.
This commit is contained in:
@@ -73,7 +73,7 @@ public class CassandraCustomConversions extends org.springframework.data.convert
|
||||
|
||||
CassandraType annotation = AnnotatedElementUtils.getMergedAnnotation(it, CassandraType.class);
|
||||
|
||||
return annotation != null && annotation.type() == CassandraSimpleTypeHolder.Name.TIME;
|
||||
return annotation != null && annotation.type() == CassandraType.Name.TIME;
|
||||
}) //
|
||||
.map(it -> {
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.core.convert;
|
||||
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -27,7 +29,6 @@ import org.joda.time.LocalDateTime;
|
||||
import org.joda.time.LocalTime;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.convert.WritingConverter;
|
||||
import org.springframework.util.ClassUtils;
|
||||
@@ -112,7 +113,7 @@ public abstract class CassandraJodaTimeConverters {
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
@WritingConverter
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIME)
|
||||
@CassandraType(type = Name.TIME)
|
||||
public enum FromJodaLocalTimeConverter implements Converter<LocalTime, java.time.LocalTime> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -144,7 +145,7 @@ public abstract class CassandraJodaTimeConverters {
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
@WritingConverter
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE)
|
||||
@CassandraType(type = Name.DATE)
|
||||
public enum FromJodaLocalDateConverter implements Converter<LocalDate, java.time.LocalDate> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.core.convert;
|
||||
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -23,7 +25,6 @@ import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.convert.ReadingConverter;
|
||||
import org.springframework.data.convert.ThreeTenBackPortConverters;
|
||||
@@ -125,7 +126,7 @@ public abstract class CassandraThreeTenBackPortConverters {
|
||||
* @since 3.0
|
||||
*/
|
||||
@WritingConverter
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIME)
|
||||
@CassandraType(type = Name.TIME)
|
||||
public enum FromBpLocalTimeConverter implements Converter<LocalTime, java.time.LocalTime> {
|
||||
|
||||
INSTANCE;
|
||||
@@ -158,7 +159,7 @@ public abstract class CassandraThreeTenBackPortConverters {
|
||||
* @since 3.0
|
||||
*/
|
||||
@WritingConverter
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE)
|
||||
@CassandraType(type = Name.DATE)
|
||||
public enum FromBpLocalDateConverter implements Converter<LocalDate, java.time.LocalDate> {
|
||||
|
||||
INSTANCE;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.core.mapping;
|
||||
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.AnnotatedParameterizedType;
|
||||
import java.lang.reflect.AnnotatedType;
|
||||
@@ -215,7 +217,7 @@ public class BasicCassandraPersistentProperty extends AnnotationBasedPersistentP
|
||||
|
||||
private DataType getDataTypeFor(CassandraType annotation) {
|
||||
|
||||
CassandraSimpleTypeHolder.Name type = annotation.type();
|
||||
Name type = annotation.type();
|
||||
|
||||
switch (type) {
|
||||
case MAP:
|
||||
@@ -224,12 +226,12 @@ public class BasicCassandraPersistentProperty extends AnnotationBasedPersistentP
|
||||
CassandraSimpleTypeHolder.getDataTypeFor(annotation.typeArguments()[1]));
|
||||
case LIST:
|
||||
assertTypeArguments(annotation.typeArguments().length, 1);
|
||||
return annotation.typeArguments()[0] == CassandraSimpleTypeHolder.Name.UDT
|
||||
return annotation.typeArguments()[0] == Name.UDT
|
||||
? DataTypes.listOf(getUserType(annotation))
|
||||
: DataTypes.listOf(CassandraSimpleTypeHolder.getDataTypeFor(annotation.typeArguments()[0]));
|
||||
case SET:
|
||||
assertTypeArguments(annotation.typeArguments().length, 1);
|
||||
return annotation.typeArguments()[0] == CassandraSimpleTypeHolder.Name.UDT
|
||||
return annotation.typeArguments()[0] == Name.UDT
|
||||
? DataTypes.setOf(getUserType(annotation))
|
||||
: DataTypes.setOf(CassandraSimpleTypeHolder.getDataTypeFor(annotation.typeArguments()[0]));
|
||||
case UDT:
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.cassandra.core.mapping;
|
||||
|
||||
import static org.springframework.data.cassandra.core.cql.keyspace.CreateTableSpecification.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
@@ -588,7 +589,7 @@ public class CassandraMappingContext
|
||||
|
||||
CassandraType annotation = property.getRequiredAnnotation(CassandraType.class);
|
||||
|
||||
if (annotation.type() == CassandraSimpleTypeHolder.Name.TUPLE) {
|
||||
if (annotation.type() == Name.TUPLE) {
|
||||
|
||||
DataType[] dataTypes = Arrays.stream(annotation.typeArguments()).map(CassandraSimpleTypeHolder::getDataTypeFor)
|
||||
.toArray(DataType[]::new);
|
||||
@@ -596,7 +597,7 @@ public class CassandraMappingContext
|
||||
return getTupleTypeFactory().create(dataTypes);
|
||||
}
|
||||
|
||||
if (annotation.type() == CassandraSimpleTypeHolder.Name.UDT) {
|
||||
if (annotation.type() == Name.UDT) {
|
||||
|
||||
com.datastax.oss.driver.api.core.CqlIdentifier userTypeName = com.datastax.oss.driver.api.core.CqlIdentifier
|
||||
.fromCql(annotation.userTypeName());
|
||||
|
||||
@@ -60,7 +60,7 @@ public class CassandraSimpleTypeHolder extends SimpleTypeHolder {
|
||||
|
||||
private static final Map<Class<?>, DataType> classToDataType;
|
||||
|
||||
private static final Map<Name, DataType> nameToDataType;
|
||||
private static final Map<CassandraType.Name, DataType> nameToDataType;
|
||||
|
||||
static {
|
||||
|
||||
@@ -132,33 +132,33 @@ public class CassandraSimpleTypeHolder extends SimpleTypeHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the map between {@link Name} and {@link DataType}.
|
||||
* @return the map between {@link CassandraType.Name} and {@link DataType}.
|
||||
*/
|
||||
private static Map<Name, DataType> nameToDataType() {
|
||||
private static Map<CassandraType.Name, DataType> nameToDataType() {
|
||||
|
||||
Map<Name, DataType> nameToDataType = new HashMap<>(16);
|
||||
Map<CassandraType.Name, DataType> nameToDataType = new HashMap<>(16);
|
||||
|
||||
nameToDataType.put(Name.ASCII, DataTypes.ASCII);
|
||||
nameToDataType.put(Name.BIGINT, DataTypes.BIGINT);
|
||||
nameToDataType.put(Name.BLOB, DataTypes.BLOB);
|
||||
nameToDataType.put(Name.BOOLEAN, DataTypes.BOOLEAN);
|
||||
nameToDataType.put(Name.COUNTER, DataTypes.COUNTER);
|
||||
nameToDataType.put(Name.DECIMAL, DataTypes.DECIMAL);
|
||||
nameToDataType.put(Name.DOUBLE, DataTypes.DOUBLE);
|
||||
nameToDataType.put(Name.FLOAT, DataTypes.FLOAT);
|
||||
nameToDataType.put(Name.INT, DataTypes.INT);
|
||||
nameToDataType.put(Name.TIMESTAMP, DataTypes.TIMESTAMP);
|
||||
nameToDataType.put(Name.UUID, DataTypes.UUID);
|
||||
nameToDataType.put(Name.VARCHAR, DataTypes.TEXT);
|
||||
nameToDataType.put(Name.TEXT, DataTypes.TEXT);
|
||||
nameToDataType.put(Name.TIMEUUID, DataTypes.TIMEUUID);
|
||||
nameToDataType.put(Name.INET, DataTypes.INET);
|
||||
nameToDataType.put(Name.DATE, DataTypes.DATE);
|
||||
nameToDataType.put(Name.SMALLINT, DataTypes.SMALLINT);
|
||||
nameToDataType.put(Name.TINYINT, DataTypes.TINYINT);
|
||||
nameToDataType.put(Name.VARINT, DataTypes.VARINT);
|
||||
nameToDataType.put(Name.TIME, DataTypes.TIME);
|
||||
nameToDataType.put(Name.DURATION, DataTypes.DURATION);
|
||||
nameToDataType.put(CassandraType.Name.ASCII, DataTypes.ASCII);
|
||||
nameToDataType.put(CassandraType.Name.BIGINT, DataTypes.BIGINT);
|
||||
nameToDataType.put(CassandraType.Name.BLOB, DataTypes.BLOB);
|
||||
nameToDataType.put(CassandraType.Name.BOOLEAN, DataTypes.BOOLEAN);
|
||||
nameToDataType.put(CassandraType.Name.COUNTER, DataTypes.COUNTER);
|
||||
nameToDataType.put(CassandraType.Name.DECIMAL, DataTypes.DECIMAL);
|
||||
nameToDataType.put(CassandraType.Name.DOUBLE, DataTypes.DOUBLE);
|
||||
nameToDataType.put(CassandraType.Name.FLOAT, DataTypes.FLOAT);
|
||||
nameToDataType.put(CassandraType.Name.INT, DataTypes.INT);
|
||||
nameToDataType.put(CassandraType.Name.TIMESTAMP, DataTypes.TIMESTAMP);
|
||||
nameToDataType.put(CassandraType.Name.UUID, DataTypes.UUID);
|
||||
nameToDataType.put(CassandraType.Name.VARCHAR, DataTypes.TEXT);
|
||||
nameToDataType.put(CassandraType.Name.TEXT, DataTypes.TEXT);
|
||||
nameToDataType.put(CassandraType.Name.TIMEUUID, DataTypes.TIMEUUID);
|
||||
nameToDataType.put(CassandraType.Name.INET, DataTypes.INET);
|
||||
nameToDataType.put(CassandraType.Name.DATE, DataTypes.DATE);
|
||||
nameToDataType.put(CassandraType.Name.SMALLINT, DataTypes.SMALLINT);
|
||||
nameToDataType.put(CassandraType.Name.TINYINT, DataTypes.TINYINT);
|
||||
nameToDataType.put(CassandraType.Name.VARINT, DataTypes.VARINT);
|
||||
nameToDataType.put(CassandraType.Name.TIME, DataTypes.TIME);
|
||||
nameToDataType.put(CassandraType.Name.DURATION, DataTypes.DURATION);
|
||||
|
||||
return nameToDataType;
|
||||
}
|
||||
@@ -188,21 +188,13 @@ public class CassandraSimpleTypeHolder extends SimpleTypeHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link DataType} for a {@link Name}.
|
||||
* Returns the {@link DataType} for a {@link CassandraType.Name}.
|
||||
*
|
||||
* @param dataTypeName must not be {@literal null}.
|
||||
* @return the {@link DataType} for {@link Name}.
|
||||
* @return the {@link DataType} for {@link CassandraType.Name}.
|
||||
*/
|
||||
public static DataType getDataTypeFor(Name dataTypeName) {
|
||||
public static DataType getDataTypeFor(CassandraType.Name dataTypeName) {
|
||||
return nameToDataType.get(dataTypeName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cassandra Protocol types.
|
||||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
public enum Name {
|
||||
ASCII, BIGINT, BLOB, BOOLEAN, COUNTER, DECIMAL, DOUBLE, FLOAT, INT, TIMESTAMP, UUID, VARCHAR, TEXT, VARINT, TIMEUUID, INET, DATE, TIME, SMALLINT, TINYINT, DURATION, LIST, MAP, SET, UDT, TUPLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
|
||||
* @author Alex Shvid
|
||||
* @author Matthew T. Adams
|
||||
* @author Mark Paluch
|
||||
* @see CassandraSimpleTypeHolder.Name
|
||||
* @see Name
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@@ -38,12 +38,11 @@ public @interface CassandraType {
|
||||
/**
|
||||
* The {@link Name} of the property.
|
||||
*/
|
||||
CassandraSimpleTypeHolder.Name type();
|
||||
Name type();
|
||||
|
||||
/**
|
||||
* If the property is {@link java.util.Collection Collection-like}, then this attribute holds a single
|
||||
* {@link CassandraSimpleTypeHolder.Name DataType Name} representing the element type of the
|
||||
* {@link java.util.Collection}.
|
||||
* If the property is {@link java.util.Collection Collection-like}, then this attribute holds a single {@link Name
|
||||
* DataType Name} representing the element type of the {@link java.util.Collection}.
|
||||
* <p/>
|
||||
* If the property is a {@link java.util.Map}, then this attribute holds exactly two {@link Name DataType Names}; the
|
||||
* first is the key type and the second is the value type.
|
||||
@@ -51,10 +50,10 @@ public @interface CassandraType {
|
||||
* If the property is neither {@link java.util.Collection Collection-like} nor a {@link java.util.Map}, then this
|
||||
* attribute is ignored.
|
||||
*
|
||||
* @return an array of {@link CassandraSimpleTypeHolder.Name} objects.
|
||||
* @see CassandraSimpleTypeHolder.Name
|
||||
* @return an array of {@link Name} objects.
|
||||
* @see Name
|
||||
*/
|
||||
CassandraSimpleTypeHolder.Name[] typeArguments() default {};
|
||||
Name[] typeArguments() default {};
|
||||
|
||||
/**
|
||||
* If the property maps to a User-Defined Type (UDT) then this attribute holds the user type name. For
|
||||
@@ -66,4 +65,12 @@ public @interface CassandraType {
|
||||
*/
|
||||
String userTypeName() default "";
|
||||
|
||||
/**
|
||||
* Cassandra Protocol types.
|
||||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
enum Name {
|
||||
ASCII, BIGINT, BLOB, BOOLEAN, COUNTER, DECIMAL, DOUBLE, FLOAT, INT, TIMESTAMP, UUID, VARCHAR, TEXT, VARINT, TIMEUUID, INET, DATE, TIME, SMALLINT, TINYINT, DURATION, LIST, MAP, SET, UDT, TUPLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
|
||||
import org.springframework.data.cassandra.core.mapping.Table;
|
||||
@@ -35,5 +34,5 @@ import org.springframework.data.cassandra.core.mapping.Table;
|
||||
public class CounterEntity {
|
||||
|
||||
@PrimaryKey @NonNull private String id;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.COUNTER) private long count;
|
||||
@CassandraType(type = CassandraType.Name.COUNTER) private long count;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,6 @@ 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.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.MapId;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
|
||||
@@ -974,7 +973,7 @@ public class MappingCassandraConverterUnitTests {
|
||||
|
||||
@PrimaryKey private String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.INT) private Condition asOrdinal;
|
||||
@CassandraType(type = CassandraType.Name.INT) private Condition asOrdinal;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
@@ -1126,7 +1125,7 @@ public class MappingCassandraConverterUnitTests {
|
||||
|
||||
@PrimaryKey private String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) java.time.LocalDate localDate;
|
||||
@CassandraType(type = CassandraType.Name.DATE) java.time.LocalDate localDate;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1137,7 +1136,7 @@ public class MappingCassandraConverterUnitTests {
|
||||
|
||||
@PrimaryKey private String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) org.joda.time.LocalDate localDate;
|
||||
@CassandraType(type = CassandraType.Name.DATE) org.joda.time.LocalDate localDate;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1148,7 +1147,7 @@ public class MappingCassandraConverterUnitTests {
|
||||
|
||||
@PrimaryKey private String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) org.threeten.bp.LocalDate localDate;
|
||||
@CassandraType(type = CassandraType.Name.DATE) org.threeten.bp.LocalDate localDate;
|
||||
}
|
||||
|
||||
@Table
|
||||
|
||||
@@ -20,7 +20,6 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
|
||||
import org.springframework.data.cassandra.core.mapping.Table;
|
||||
@@ -35,5 +34,5 @@ import org.springframework.data.cassandra.core.mapping.Table;
|
||||
public class TimeEntity {
|
||||
|
||||
@PrimaryKey @NonNull private String id;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIME) private long time;
|
||||
@CassandraType(type = CassandraType.Name.TIME) private long time;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.cassandra.core.mapping;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -200,7 +201,7 @@ public class BasicCassandraPersistentPropertyUnitTests {
|
||||
}
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.COUNTER)
|
||||
@CassandraType(type = Name.COUNTER)
|
||||
@interface ComposedCassandraTypeAnnotation {
|
||||
}
|
||||
|
||||
@@ -224,7 +225,7 @@ public class BasicCassandraPersistentPropertyUnitTests {
|
||||
|
||||
UUID uuid;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIMEUUID) UUID timeUUID;
|
||||
@CassandraType(type = Name.TIMEUUID) UUID timeUUID;
|
||||
}
|
||||
|
||||
static class TypeWithMaps {
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.springframework.data.cassandra.core.mapping;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
@@ -674,8 +675,8 @@ public class CassandraMappingContextUnitTests {
|
||||
@Table
|
||||
private static class WithUdt {
|
||||
@Id String id;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.UDT, userTypeName = "mappedudt") UdtValue udtValue;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.UDT, userTypeName = "NestedType") Nested nested;
|
||||
@CassandraType(type = Name.UDT, userTypeName = "mappedudt") UdtValue udtValue;
|
||||
@CassandraType(type = Name.UDT, userTypeName = "NestedType") Nested nested;
|
||||
}
|
||||
|
||||
@Table
|
||||
@@ -698,7 +699,7 @@ public class CassandraMappingContextUnitTests {
|
||||
private static class TypeWithCustomConvertedMap {
|
||||
@Id String id;
|
||||
Map<String, Collection<String>> stringMap;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.ASCII) Map<String, Collection<String>> blobMap;
|
||||
@CassandraType(type = Name.ASCII) Map<String, Collection<String>> blobMap;
|
||||
}
|
||||
|
||||
@Table
|
||||
@@ -721,7 +722,7 @@ public class CassandraMappingContextUnitTests {
|
||||
@org.springframework.data.cassandra.core.mapping.UserDefinedType(value = "NestedType")
|
||||
public static class Nested {
|
||||
String s1;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.UDT,
|
||||
@CassandraType(type = Name.UDT,
|
||||
userTypeName = "AnotherNestedType") AnotherNested anotherNested;
|
||||
}
|
||||
|
||||
@@ -733,8 +734,7 @@ public class CassandraMappingContextUnitTests {
|
||||
@Table
|
||||
static class TypedTupleEntity {
|
||||
@Id String id;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TUPLE, typeArguments = {
|
||||
CassandraSimpleTypeHolder.Name.VARCHAR, CassandraSimpleTypeHolder.Name.BIGINT }) TupleValue typed;
|
||||
@CassandraType(type = Name.TUPLE, typeArguments = { Name.VARCHAR, Name.BIGINT }) TupleValue typed;
|
||||
}
|
||||
|
||||
@Table
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.util.UUID;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder.Name;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType.Name;
|
||||
|
||||
import com.datastax.oss.driver.api.core.type.DataTypes;
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.springframework.data.cassandra.core.mapping;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
@@ -377,9 +378,8 @@ public class CreateTableSpecificationBasicCassandraMappingContextUnitTests {
|
||||
List<Human> friends;
|
||||
Set<Human> people;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.FLOAT) Human floater;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.SET,
|
||||
typeArguments = CassandraSimpleTypeHolder.Name.BIGINT) List<Human> enemies;
|
||||
@CassandraType(type = Name.FLOAT) Human floater;
|
||||
@CassandraType(type = Name.SET, typeArguments = Name.BIGINT) List<Human> enemies;
|
||||
}
|
||||
|
||||
@Data
|
||||
@@ -395,7 +395,7 @@ public class CreateTableSpecificationBasicCassandraMappingContextUnitTests {
|
||||
private static class MappedTuple {
|
||||
|
||||
@Element(0) MappedUdt mappedUdt;
|
||||
@Element(1) @CassandraType(type = CassandraSimpleTypeHolder.Name.UDT, userTypeName = "human_udt") UdtValue human;
|
||||
@Element(1) @CassandraType(type = Name.UDT, userTypeName = "human_udt") UdtValue human;
|
||||
@Element(2) String text;
|
||||
}
|
||||
|
||||
@@ -405,10 +405,10 @@ public class CreateTableSpecificationBasicCassandraMappingContextUnitTests {
|
||||
|
||||
@Id String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.UDT, userTypeName = "human_udt") UdtValue human;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.LIST, typeArguments = CassandraSimpleTypeHolder.Name.UDT,
|
||||
@CassandraType(type = Name.UDT, userTypeName = "human_udt") UdtValue human;
|
||||
@CassandraType(type = Name.LIST, typeArguments = Name.UDT,
|
||||
userTypeName = "species_udt") List<UdtValue> friends;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.SET, typeArguments = CassandraSimpleTypeHolder.Name.UDT,
|
||||
@CassandraType(type = Name.SET, typeArguments = Name.UDT,
|
||||
userTypeName = "peeps_udt") Set<UdtValue> people;
|
||||
}
|
||||
|
||||
@@ -443,8 +443,8 @@ public class CreateTableSpecificationBasicCassandraMappingContextUnitTests {
|
||||
|
||||
@Id String id;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIMESTAMP) java.time.LocalDate localDate;
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TIMESTAMP) org.joda.time.LocalDate jodaLocalDate;
|
||||
@CassandraType(type = Name.TIMESTAMP) java.time.LocalDate localDate;
|
||||
@CassandraType(type = Name.TIMESTAMP) org.joda.time.LocalDate jodaLocalDate;
|
||||
}
|
||||
|
||||
private static class PersonReadConverter implements Converter<String, Human> {
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.domain;
|
||||
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
@@ -32,7 +34,6 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.data.cassandra.core.convert.CassandraTypeMappingIntegrationTests.Condition;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.PrimaryKey;
|
||||
import org.springframework.data.cassandra.core.mapping.Table;
|
||||
@@ -54,7 +55,7 @@ public class AllPossibleTypes {
|
||||
|
||||
UUID uuid;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.INT) Number justNumber;
|
||||
@CassandraType(type = Name.INT) Number justNumber;
|
||||
|
||||
Byte boxedByte;
|
||||
byte primitiveByte;
|
||||
@@ -93,8 +94,7 @@ public class AllPossibleTypes {
|
||||
Set<Condition> setOfEnum;
|
||||
List<Condition> listOfEnum;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.TUPLE, typeArguments = { CassandraSimpleTypeHolder.Name.VARCHAR,
|
||||
CassandraSimpleTypeHolder.Name.BIGINT }) TupleValue tupleValue;
|
||||
@CassandraType(type = Name.TUPLE, typeArguments = { Name.VARCHAR, Name.BIGINT }) TupleValue tupleValue;
|
||||
|
||||
// supported by conversion
|
||||
java.time.Instant instant;
|
||||
|
||||
@@ -15,13 +15,14 @@
|
||||
*/
|
||||
package org.springframework.data.cassandra.repository.conversion;
|
||||
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.core.mapping.Table;
|
||||
|
||||
@@ -38,9 +39,9 @@ class Contact {
|
||||
Address address;
|
||||
List<Address> addresses;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.UDT, userTypeName = "phone") Phone mainPhone;
|
||||
@CassandraType(type = Name.UDT, userTypeName = "phone") Phone mainPhone;
|
||||
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.LIST, typeArguments = CassandraSimpleTypeHolder.Name.UDT,
|
||||
@CassandraType(type = Name.LIST, typeArguments = Name.UDT,
|
||||
userTypeName = "phone") List<Phone> alternativePhones;
|
||||
|
||||
public Contact(String id) {
|
||||
|
||||
@@ -40,7 +40,6 @@ import org.springframework.data.cassandra.config.SchemaAction;
|
||||
import org.springframework.data.cassandra.core.convert.CassandraCustomConversions;
|
||||
import org.springframework.data.cassandra.core.convert.MappingCassandraConverter;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.domain.AllPossibleTypes;
|
||||
import org.springframework.data.cassandra.repository.Query;
|
||||
@@ -191,7 +190,7 @@ public class RepositoryQueryMethodParameterTypesIntegrationTests
|
||||
|
||||
@Query("select * from allpossibletypes where date = ?0")
|
||||
List<AllPossibleTypes> findWithAnnotatedDateParameter(
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) Date timestamp);
|
||||
@CassandraType(type = CassandraType.Name.DATE) Date timestamp);
|
||||
|
||||
@Query("select * from allpossibletypes where date = ?0")
|
||||
List<AllPossibleTypes> findWithDateParameter(Date timestamp);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.cassandra.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
@@ -27,7 +28,6 @@ import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.cassandra.core.cql.QueryOptions;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.domain.AllPossibleTypes;
|
||||
import org.springframework.data.projection.ProjectionFactory;
|
||||
@@ -124,10 +124,10 @@ public class CassandraParametersParameterAccessorUnitTests {
|
||||
List<AllPossibleTypes> findByBpLocalDateTime(LocalDateTime dateTime);
|
||||
|
||||
List<AllPossibleTypes> findByAnnotatedBpLocalDateTime(
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) LocalDateTime dateTime);
|
||||
@CassandraType(type = Name.DATE) LocalDateTime dateTime);
|
||||
|
||||
List<AllPossibleTypes> findByAnnotatedObject(
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) Object dateTime);
|
||||
@CassandraType(type = Name.DATE) Object dateTime);
|
||||
|
||||
List<AllPossibleTypes> findByFirstname(QueryOptions queryOptions, String firstname);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.cassandra.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -26,7 +27,6 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.domain.Person;
|
||||
|
||||
@@ -56,7 +56,7 @@ public class CassandraParametersUnitTests {
|
||||
CassandraParameters cassandraParameters = new CassandraParameters(method);
|
||||
|
||||
assertThat(cassandraParameters.getParameter(0).getCassandraType().type())
|
||||
.isEqualTo(CassandraSimpleTypeHolder.Name.TIME);
|
||||
.isEqualTo(Name.TIME);
|
||||
}
|
||||
|
||||
@Test // DATACASS-296
|
||||
@@ -75,7 +75,7 @@ public class CassandraParametersUnitTests {
|
||||
CassandraParameters cassandraParameters = new CassandraParameters(method);
|
||||
|
||||
assertThat(cassandraParameters.getParameter(0).getCassandraType().type())
|
||||
.isEqualTo(CassandraSimpleTypeHolder.Name.TIME);
|
||||
.isEqualTo(Name.TIME);
|
||||
}
|
||||
|
||||
@Test // DATACASS-296
|
||||
@@ -85,24 +85,24 @@ public class CassandraParametersUnitTests {
|
||||
CassandraParameters cassandraParameters = new CassandraParameters(method);
|
||||
|
||||
assertThat(cassandraParameters.getParameter(0).getCassandraType().type())
|
||||
.isEqualTo(CassandraSimpleTypeHolder.Name.BOOLEAN);
|
||||
.isEqualTo(Name.BOOLEAN);
|
||||
}
|
||||
|
||||
interface PersonRepository {
|
||||
|
||||
Person findByFirstname(String firstname);
|
||||
|
||||
Person findByFirstTime(@CassandraType(type = CassandraSimpleTypeHolder.Name.TIME) String firstname);
|
||||
Person findByFirstTime(@CassandraType(type = Name.TIME) String firstname);
|
||||
|
||||
Person findByObject(Object firstname);
|
||||
|
||||
Person findByAnnotatedObject(@CassandraType(type = CassandraSimpleTypeHolder.Name.TIME) Object firstname);
|
||||
Person findByAnnotatedObject(@CassandraType(type = Name.TIME) Object firstname);
|
||||
|
||||
Person findByComposedAnnotationObject(@ComposedCassandraTypeAnnotation Object firstname);
|
||||
}
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.BOOLEAN)
|
||||
@CassandraType(type = Name.BOOLEAN)
|
||||
@interface ComposedCassandraTypeAnnotation {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.cassandra.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.cassandra.core.mapping.CassandraType.*;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -30,7 +31,6 @@ import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.core.convert.support.GenericConversionService;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraSimpleTypeHolder;
|
||||
import org.springframework.data.cassandra.core.mapping.CassandraType;
|
||||
import org.springframework.data.cassandra.domain.AllPossibleTypes;
|
||||
import org.springframework.data.projection.ProjectionFactory;
|
||||
@@ -121,9 +121,9 @@ public class ReactiveCassandraParameterAccessorUnitTests {
|
||||
Flux<AllPossibleTypes> findByLocalDateTime(Mono<LocalDateTime> dateTime);
|
||||
|
||||
Flux<AllPossibleTypes> findByAnnotatedByLocalDateTime(
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) Single<LocalDateTime> dateTime);
|
||||
@CassandraType(type = Name.DATE) Single<LocalDateTime> dateTime);
|
||||
|
||||
Flux<AllPossibleTypes> findByAnnotatedObject(
|
||||
@CassandraType(type = CassandraSimpleTypeHolder.Name.DATE) Mono<Object> dateTime);
|
||||
@CassandraType(type = Name.DATE) Mono<Object> dateTime);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user