diff --git a/spring-cql/src/main/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGenerator.java b/spring-cql/src/main/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGenerator.java
index 2784e4335..c535f10d8 100644
--- a/spring-cql/src/main/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGenerator.java
+++ b/spring-cql/src/main/java/org/springframework/cassandra/core/cql/generator/AlterUserTypeCqlGenerator.java
@@ -15,7 +15,7 @@
*/
package org.springframework.cassandra.core.cql.generator;
-import static org.springframework.cassandra.core.cql.CqlStringUtils.*;
+import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull;
import org.springframework.cassandra.core.keyspace.AddColumnSpecification;
import org.springframework.cassandra.core.keyspace.AlterColumnSpecification;
@@ -43,14 +43,14 @@ public class AlterUserTypeCqlGenerator extends UserTypeNameCqlGenerator
* A {@link FieldSpecification} consists of a name and a {@link DataType}.
- *
+ *
* @author Mark Paluch
* @since 1.5
* @see CqlIdentifier
@@ -58,12 +58,13 @@ public class FieldSpecification {
Assert.notNull(name, "CqlIdentifier must not be null");
this.name = name;
+
return this;
}
/**
* Sets the column's type.
- *
+ *
* @param type The data type of the field, must not be {@literal null}.
* @return {@code this} {@link FieldSpecification}.
*/
@@ -72,6 +73,7 @@ public class FieldSpecification {
Assert.notNull(type, "DataType must not be null");
this.type = type;
+
return this;
}
@@ -83,7 +85,7 @@ public class FieldSpecification {
return noNull(cql).append(name).append(" ").append(type);
}
- /*
+ /*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
diff --git a/spring-cql/src/main/java/org/springframework/cassandra/core/keyspace/UserTypeNameSpecification.java b/spring-cql/src/main/java/org/springframework/cassandra/core/keyspace/UserTypeNameSpecification.java
index e39071a1d..cf16ca97f 100644
--- a/spring-cql/src/main/java/org/springframework/cassandra/core/keyspace/UserTypeNameSpecification.java
+++ b/spring-cql/src/main/java/org/springframework/cassandra/core/keyspace/UserTypeNameSpecification.java
@@ -33,7 +33,7 @@ public abstract class UserTypeNameSpecification> extends U
/**
* Adds the given field to the type.
- *
+ *
* @param name must not be empty or {@literal null}.
* @param type The data type of the field.
* @return {@code this} specification.
@@ -60,6 +60,7 @@ public class UserTypeSpecification> extends U
public T field(CqlIdentifier name, DataType type) {
fields.add(new FieldSpecification().name(name).type(type));
+
return (T) this;
}
diff --git a/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.0.xsd b/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.0.xsd
index 21222888d..8c5ad68e3 100644
--- a/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.0.xsd
+++ b/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.0.xsd
@@ -2,12 +2,11 @@
+ schemaLocation="http://www.springframework.org/schema/tool/spring-tool.xsd" />
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -51,6 +68,28 @@ Defines a Cassandra cluster.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -433,105 +472,6 @@ When Authentication is enabled, the username to use when connecting to the Clust
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -713,4 +695,21 @@ The replication factor; default is 1.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.5.xsd b/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.5.xsd
index 9ff0bceb8..b89f0a674 100644
--- a/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.5.xsd
+++ b/spring-cql/src/main/resources/org/springframework/cassandra/config/spring-cql-1.5.xsd
@@ -29,17 +29,6 @@ Defines the configuration elements in the XML namespace for Spring Cassandra.
]]>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -65,6 +83,28 @@ Defines a Cassandra cluster.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -447,105 +487,6 @@ When Authentication is enabled, the username to use when connecting to the Clust
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -727,4 +710,21 @@ The replication factor; default is 1.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java
index 60c85472f..3ae3c0029 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java
@@ -1,12 +1,12 @@
/*
* Copyright 2013-2016 the original author or authors
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -68,10 +68,10 @@ public class CassandraSessionFactoryBean extends CassandraCqlSessionFactoryBean
/* (non-Javadoc) */
protected void performSchemaAction() {
+ boolean create = false;
boolean drop = DEFAULT_DROP_TABLES;
boolean dropUnused = DEFAULT_DROP_UNUSED_TABLES;
boolean ifNotExists = DEFAULT_CREATE_IF_NOT_EXISTS;
- boolean create = false;
switch (schemaAction) {
case RECREATE_DROP_UNUSED:
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/xml/CassandraMappingContextParser.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/xml/CassandraMappingContextParser.java
index e26d638d7..a1c2726af 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/xml/CassandraMappingContextParser.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/xml/CassandraMappingContextParser.java
@@ -1,12 +1,12 @@
/*
* Copyright 2013-2016 the original author or authors
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -35,13 +35,14 @@ import org.springframework.data.cassandra.mapping.EntityMapping;
import org.springframework.data.cassandra.mapping.Mapping;
import org.springframework.data.cassandra.mapping.PropertyMapping;
import org.springframework.data.cassandra.mapping.SimpleUserTypeResolver;
+import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
/**
* Spring Data Cassandra XML namespace parser for the <mapping> element.
- *
+ *
* @author Matthew T. Adams
*/
public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser {
@@ -56,7 +57,8 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
throws BeanDefinitionStoreException {
String id = super.resolveId(element, definition, parserContext);
- return StringUtils.hasText(id) ? id : DefaultBeanNames.CONTEXT;
+
+ return (StringUtils.hasText(id) ? id : DefaultBeanNames.CONTEXT);
}
@Override
@@ -70,14 +72,17 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
protected void parseMapping(Element element, BeanDefinitionBuilder builder) {
String packages = element.getAttribute("entity-base-packages");
+
if (StringUtils.hasText(packages)) {
try {
- Set> entityClasses = CassandraEntityClassScanner
- .scan(StringUtils.commaDelimitedListToStringArray(packages));
+ Set> entityClasses = CassandraEntityClassScanner.scan(
+ StringUtils.commaDelimitedListToStringArray(packages));
+
builder.addPropertyValue("initialEntitySet", entityClasses);
} catch (Exception x) {
throw new IllegalArgumentException(
- String.format("encountered exception while scanning for entity classes in package(s) [%s]", packages), x);
+ String.format("encountered exception while scanning for entity classes in package(s) [%s]",
+ packages), x);
}
}
@@ -94,15 +99,13 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
List userTypeResolvers = DomUtils.getChildElementsByTagName(element, "user-type-resolver");
String userTypeResolverRef = element.getAttribute("user-type-resolver-ref");
+
if (StringUtils.hasText(userTypeResolverRef)) {
- if (!userTypeResolvers.isEmpty()) {
- throw new IllegalArgumentException("Must not define user-type-resolver and user-type-resolver-ref");
- }
+ Assert.isTrue(userTypeResolvers.isEmpty(), "Must not define user-type-resolver and user-type-resolver-ref");
builder.addPropertyReference("userTypeResolver", userTypeResolverRef);
}
- if(!userTypeResolvers.isEmpty()){
-
+ if (!userTypeResolvers.isEmpty()){
BeanDefinition userTypeResolver = parseUserTypeResolver(userTypeResolvers.get(0));
builder.addPropertyValue("userTypeResolver", userTypeResolver);
}
@@ -116,23 +119,18 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
protected EntityMapping parseEntity(Element entity) {
String className = entity.getAttribute("class");
- if (!StringUtils.hasText(className)) {
- throw new IllegalStateException("class attribute must not be empty");
- }
+
+ Assert.state(StringUtils.hasText(className), "class attribute must not be empty");
+
+ Element table = DomUtils.getChildElementByTagName(entity, "table");
String tableName = "";
String forceQuote = "";
- Element table = DomUtils.getChildElementByTagName(entity, "table");
+
if (table != null) {
tableName = table.getAttribute("name");
- if (!StringUtils.hasText(tableName)) {
- tableName = "";
- }
-
- forceQuote = table.getAttribute("force-quote");
- if (!StringUtils.hasText(forceQuote)) {
- forceQuote = Boolean.FALSE.toString();
- }
+ tableName = (StringUtils.hasText(tableName) ? tableName : "");
+ forceQuote = String.valueOf(Boolean.parseBoolean(table.getAttribute("force-quote")));
}
// TODO: parse future entity mappings here, like table options
@@ -148,9 +146,8 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
protected BeanDefinition parseUserTypeResolver(Element entity) {
String keyspaceName = entity.getAttribute("keyspace-name");
- if (!StringUtils.hasText(keyspaceName)) {
- throw new IllegalStateException("keyspace-name attribute must not be null or empty");
- }
+
+ Assert.state(StringUtils.hasText(keyspaceName), "keyspace-name attribute must not be null or empty");
String clusterRef = entity.getAttribute("cluster-ref");
@@ -163,29 +160,31 @@ public class CassandraMappingContextParser extends AbstractSingleBeanDefinitionP
protected Map parsePropertyMappings(Element entity) {
- Map pms = new HashMap();
+ Map propertyMappings = new HashMap();
for (Element property : DomUtils.getChildElementsByTagName(entity, "property")) {
String value = property.getAttribute("name");
- if (!StringUtils.hasText(value)) {
- throw new IllegalStateException("name attribute must not be empty");
- }
- PropertyMapping pm = new PropertyMapping(value);
+
+ Assert.state(StringUtils.hasText(value), "name attribute must not be empty");
+
+ PropertyMapping propertyMapping = new PropertyMapping(value);
value = property.getAttribute("column-name");
+
if (StringUtils.hasText(value)) {
- pm.setColumnName(value);
+ propertyMapping.setColumnName(value);
}
value = property.getAttribute("force-quote");
+
if (StringUtils.hasText(value)) {
- pm.setForceQuote(value);
+ propertyMapping.setForceQuote(value);
}
- pms.put(pm.getPropertyName(), pm);
+ propertyMappings.put(propertyMapping.getPropertyName(), propertyMapping);
}
- return pms;
+ return propertyMappings;
}
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CassandraUDTValueProvider.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CassandraUDTValueProvider.java
index 1dbacc69f..6fb2e99d5 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CassandraUDTValueProvider.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CassandraUDTValueProvider.java
@@ -17,7 +17,6 @@ package org.springframework.data.cassandra.convert;
import org.springframework.data.cassandra.mapping.CassandraPersistentProperty;
import org.springframework.data.mapping.model.DefaultSpELExpressionEvaluator;
-import org.springframework.data.mapping.model.PropertyValueProvider;
import org.springframework.data.mapping.model.SpELExpressionEvaluator;
import org.springframework.util.Assert;
@@ -27,7 +26,7 @@ import com.datastax.driver.core.UDTValue;
/**
* {@link CassandraValueProvider} to read property values from a {@link UDTValue}.
- *
+ *
* @author Mark Paluch
* @since 1.5
*/
@@ -40,7 +39,7 @@ public class CassandraUDTValueProvider implements CassandraValueProvider {
/**
* Creates a new {@link CassandraUDTValueProvider} with the given {@link UDTValue} and
* {@link DefaultSpELExpressionEvaluator}.
- *
+ *
* @param udtValue must not be {@literal null}.
* @param codecRegistry must not be {@literal null}.
* @param evaluator must not be {@literal null}.
@@ -64,6 +63,7 @@ public class CassandraUDTValueProvider implements CassandraValueProvider {
public Object getPropertyValue(CassandraPersistentProperty property) {
String expression = property.getSpelExpression();
+
if (expression != null) {
return evaluator.evaluate(expression);
}
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CustomConversions.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CustomConversions.java
index c46f5d507..1de8ee3a0 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CustomConversions.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/CustomConversions.java
@@ -137,11 +137,7 @@ public class CustomConversions {
public boolean isSimpleType(Class> type) {
// Enums have no native Cassandra support
- if (type.isEnum()) {
- return false;
- }
-
- return simpleTypeHolder.isSimpleType(type);
+ return (!type.isEnum() && simpleTypeHolder.isSimpleType(type));
}
/**
diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/MappingCassandraConverter.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/MappingCassandraConverter.java
index f9a470893..275640007 100644
--- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/MappingCassandraConverter.java
+++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/convert/MappingCassandraConverter.java
@@ -15,7 +15,8 @@
*/
package org.springframework.data.cassandra.convert;
-import static org.springframework.data.cassandra.repository.support.BasicMapId.*;
+import static org.springframework.data.cassandra.repository.support.BasicMapId.Entry;
+import static org.springframework.data.cassandra.repository.support.BasicMapId.id;
import java.io.Serializable;
import java.util.ArrayList;
@@ -133,11 +134,11 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
return conversionService.convert(row, type);
}
- CassandraPersistentEntity persistentEntity = (CassandraPersistentEntity) mappingContext
- .getPersistentEntity(typeInfo);
+ CassandraPersistentEntity persistentEntity = (CassandraPersistentEntity)
+ mappingContext.getPersistentEntity(typeInfo);
if (persistentEntity == null) {
- throw new MappingException("No mapping metadata found for " + rawType.getName());
+ throw new MappingException(String.format("No mapping metadata found for %s", rawType.getName()));
}
return readEntityFromRow(persistentEntity, row);
@@ -157,8 +158,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
DefaultSpELExpressionEvaluator expressionEvaluator = new DefaultSpELExpressionEvaluator(row, spELContext);
BasicCassandraRowValueProvider rowValueProvider = new BasicCassandraRowValueProvider(row, expressionEvaluator);
- CassandraPersistentEntityParameterValueProvider parameterProvider = new CassandraPersistentEntityParameterValueProvider(
- entity, rowValueProvider, null);
+ CassandraPersistentEntityParameterValueProvider parameterProvider =
+ new CassandraPersistentEntityParameterValueProvider(entity, rowValueProvider, null);
EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity);
S instance = instantiator.createInstance(entity, parameterProvider);
@@ -171,11 +172,12 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
protected S readEntityFromUdt(CassandraPersistentEntity entity, UDTValue udtValue) {
DefaultSpELExpressionEvaluator expressionEvaluator = new DefaultSpELExpressionEvaluator(udtValue, spELContext);
- CassandraUDTValueProvider valueProvider = new CassandraUDTValueProvider(udtValue, CodecRegistry.DEFAULT_INSTANCE,
- expressionEvaluator);
- CassandraPersistentEntityParameterValueProvider parameterProvider = new CassandraPersistentEntityParameterValueProvider(
- entity, valueProvider, null);
+ CassandraUDTValueProvider valueProvider = new CassandraUDTValueProvider(
+ udtValue, CodecRegistry.DEFAULT_INSTANCE, expressionEvaluator);
+
+ CassandraPersistentEntityParameterValueProvider parameterProvider =
+ new CassandraPersistentEntityParameterValueProvider(entity, valueProvider, null);
EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity);
S instance = instantiator.createInstance(entity, parameterProvider);
@@ -185,8 +187,9 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
return instance;
}
- protected void readPropertiesFromRow(final CassandraPersistentEntity> entity, final CassandraRowValueProvider row,
- final PersistentPropertyAccessor propertyAccessor) {
+ protected void readPropertiesFromRow(CassandraPersistentEntity> entity, CassandraRowValueProvider row,
+ PersistentPropertyAccessor propertyAccessor) {
+
readProperties(entity, row, propertyAccessor);
}
@@ -203,16 +206,13 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
}
/**
- * @param entity
- * @param property
- * @param valueProvider
- * @param propertyAccessor
* @deprecated Use
* {@link #readProperty(CassandraPersistentEntity, CassandraPersistentProperty, CassandraValueProvider, PersistentPropertyAccessor)}
*/
@Deprecated
protected void readPropertyFromRow(CassandraPersistentEntity> entity, CassandraPersistentProperty property,
CassandraRowValueProvider valueProvider, PersistentPropertyAccessor propertyAccessor) {
+
readProperty(entity, property, valueProvider, propertyAccessor);
}
@@ -225,7 +225,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
}
if (property.isCompositePrimaryKey()) {
-
CassandraPersistentProperty keyProperty = entity.getIdProperty();
CassandraPersistentEntity> keyEntity = keyProperty.getCompositePrimaryKeyEntity();
@@ -326,7 +325,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
Object value = getWriteValue(property, accessor);
if (log.isDebugEnabled()) {
- log.debug("doWithProperties Property.type {}, Property.value {}", property.getType().getName(), value);
+ log.debug("doWithProperties Property.type {}, Property.value {}",
+ property.getType().getName(), value);
}
if (property.isCompositePrimaryKey()) {
@@ -334,8 +334,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
log.debug("Property is a compositeKey");
}
- writeInsertFromWrapper(getConvertingAccessor(value, property.getCompositePrimaryKeyEntity()), insert,
- property.getCompositePrimaryKeyEntity());
+ writeInsertFromWrapper(getConvertingAccessor(value, property.getCompositePrimaryKeyEntity()),
+ insert, property.getCompositePrimaryKeyEntity());
return;
}
@@ -432,10 +432,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
Object id = extractId(source, entity);
- if (id == null) {
- String message = String.format("No Id value found in object %s", source);
- throw new IllegalArgumentException(message);
- }
+ Assert.notNull(id, String.format("No Id value found in object %s", source));
if (id instanceof MapId) {
return getWhereClauses((MapId) id, idProperty != null && idProperty.isCompositePrimaryKey()
@@ -459,9 +456,10 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
}
Class> targetType = getTargetType(idProperty);
+
if (conversionService.canConvert(id.getClass(), targetType)) {
- return Collections
- .singleton(QueryBuilder.eq(idProperty.getColumnName().toCql(), conversionService.convert(id, targetType)));
+ return Collections.singleton(QueryBuilder.eq(idProperty.getColumnName().toCql(),
+ conversionService.convert(id, targetType)));
}
return Collections.singleton(QueryBuilder.eq(idProperty.getColumnName().toCql(), id));
@@ -477,6 +475,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
} else if (source instanceof MapIdentifiable) {
return ((MapIdentifiable) source).getMapId();
}
+
return source;
}
@@ -487,10 +486,11 @@ public class MappingCassandraConverter extends AbstractCassandraConverter
String.format("Entity [%s] is not a composite primary key", entity.getName()));
final Collection clauses = new ArrayList();
+
entity.doWithProperties(new PropertyHandler() {
+
@Override
public void doWithPersistentProperty(CassandraPersistentProperty property) {
-
TypeCodec