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 b80158f5d..52ef09607 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,7 @@ */ package org.springframework.data.cassandra.convert; -import static org.springframework.data.cassandra.repository.support.BasicMapId.id; +import static org.springframework.data.cassandra.repository.support.BasicMapId.*; import java.io.Serializable; import java.util.Map; @@ -56,6 +56,7 @@ import com.datastax.driver.core.querybuilder.Update; * * @author Alex Shvid * @author Matthew T. Adams + * @author Oliver Gierke */ public class MappingCassandraConverter extends AbstractCassandraConverter implements CassandraConverter, ApplicationContextAware, BeanClassLoaderAware { @@ -65,7 +66,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem protected final CassandraMappingContext mappingContext; protected ApplicationContext applicationContext; protected SpELContext spELContext; - protected boolean useFieldAccessOnly = true; protected ClassLoader beanClassLoader; @@ -124,7 +124,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem EntityInstantiator instantiator = instantiators.getInstantiatorFor(entity); S instance = instantiator.createInstance(entity, parameterProvider); - BeanWrapper, S> wrapper = BeanWrapper.create(instance, conversionService); + BeanWrapper wrapper = BeanWrapper.create(instance, conversionService); readPropertiesFromRow(entity, rowValueProvider, wrapper); @@ -132,7 +132,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } protected void readPropertiesFromRow(final CassandraPersistentEntity entity, - final BasicCassandraRowValueProvider row, final BeanWrapper wrapper) { + final BasicCassandraRowValueProvider row, final BeanWrapper wrapper) { entity.doWithProperties(new PropertyHandler() { @@ -145,7 +145,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } protected void readPropertyFromRow(final CassandraPersistentEntity entity, final CassandraPersistentProperty prop, - final BasicCassandraRowValueProvider row, final BeanWrapper wrapper) { + final BasicCassandraRowValueProvider row, final BeanWrapper wrapper) { if (entity.isConstructorArgument(prop)) { // skip 'cause prop was set in ctor return; @@ -161,14 +161,13 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } // wrap the key - @SuppressWarnings("rawtypes") - BeanWrapper keyWrapper = BeanWrapper.create(key, conversionService); + BeanWrapper keyWrapper = BeanWrapper.create(key, conversionService); // now recurse on using the key this time readPropertiesFromRow(prop.getCompositePrimaryKeyEntity(), row, keyWrapper); // now that the key's properties have been populated, set the key property on the entity - wrapper.setProperty(keyProperty, keyWrapper.getBean(), useFieldAccessOnly); + wrapper.setProperty(keyProperty, keyWrapper.getBean()); return; } @@ -177,7 +176,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } Object obj = row.getPropertyValue(prop); - wrapper.setProperty(prop, obj, useFieldAccessOnly); + wrapper.setProperty(prop, obj); } protected Object instantiatePrimaryKey(CassandraPersistentEntity entity, CassandraPersistentProperty keyProperty, @@ -189,14 +188,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem propertyProvider, null)); } - public boolean getUseFieldAccessOnly() { - return useFieldAccessOnly; - } - - public void setUseFieldAccessOnly(boolean useFieldAccessOnly) { - this.useFieldAccessOnly = useFieldAccessOnly; - } - @Override public R read(Class type, Object row) { if (row instanceof Row) { @@ -231,23 +222,21 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } protected void writeInsertFromObject(final Object object, final Insert insert, CassandraPersistentEntity entity) { - writeInsertFromWrapper(BeanWrapper., Object> create(object, conversionService), - insert, entity); + writeInsertFromWrapper(BeanWrapper.create(object, conversionService), insert, entity); } - protected void writeInsertFromWrapper(final BeanWrapper, Object> wrapper, - final Insert insert, CassandraPersistentEntity entity) { + protected void writeInsertFromWrapper(final BeanWrapper wrapper, final Insert insert, + CassandraPersistentEntity entity) { entity.doWithProperties(new PropertyHandler() { @Override public void doWithPersistentProperty(CassandraPersistentProperty prop) { - Object value = wrapper.getProperty(prop, prop.getType(), useFieldAccessOnly); + Object value = wrapper.getProperty(prop, prop.getType()); if (prop.isCompositePrimaryKey()) { - writeInsertFromWrapper( - BeanWrapper., Object> create(value, conversionService), insert, + writeInsertFromWrapper(BeanWrapper.create(value, conversionService), insert, prop.getCompositePrimaryKeyEntity()); return; } @@ -260,23 +249,21 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } protected void writeUpdateFromObject(final Object object, final Update update, CassandraPersistentEntity entity) { - writeUpdateFromWrapper(BeanWrapper., Object> create(object, conversionService), - update, entity); + writeUpdateFromWrapper(BeanWrapper.create(object, conversionService), update, entity); } - protected void writeUpdateFromWrapper(final BeanWrapper, Object> wrapper, - final Update update, final CassandraPersistentEntity entity) { + protected void writeUpdateFromWrapper(final BeanWrapper wrapper, final Update update, + final CassandraPersistentEntity entity) { entity.doWithProperties(new PropertyHandler() { @Override public void doWithPersistentProperty(CassandraPersistentProperty prop) { - Object value = wrapper.getProperty(prop, prop.getType(), useFieldAccessOnly); + Object value = wrapper.getProperty(prop, prop.getType()); if (prop.isCompositePrimaryKey()) { - writeUpdateFromWrapper( - BeanWrapper., Object> create(value, conversionService), update, + writeUpdateFromWrapper(BeanWrapper.create(value, conversionService), update, prop.getCompositePrimaryKeyEntity()); return; } @@ -293,12 +280,11 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem } protected void writeDeleteWhereFromObject(final Object object, final Where where, CassandraPersistentEntity entity) { - writeDeleteWhereFromWrapper( - BeanWrapper., Object> create(object, conversionService), where, entity); + writeDeleteWhereFromWrapper(BeanWrapper.create(object, conversionService), where, entity); } - protected void writeDeleteWhereFromWrapper(final BeanWrapper, Object> wrapper, - final Where where, CassandraPersistentEntity entity) { + protected void writeDeleteWhereFromWrapper(final BeanWrapper wrapper, final Where where, + CassandraPersistentEntity entity) { Object id = getId(wrapper, entity); if (id == null) { @@ -319,8 +305,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem if (idProperty != null) { if (idProperty.isCompositePrimaryKey()) { - writeDeleteWhereFromWrapper( - BeanWrapper., Object> create(id, conversionService), where, + writeDeleteWhereFromWrapper(BeanWrapper.create(id, conversionService), where, idProperty.getCompositePrimaryKeyEntity()); return; } @@ -335,8 +320,8 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem Assert.notNull(object); - final BeanWrapper wrapper = (object instanceof BeanWrapper) ? (BeanWrapper) object : BeanWrapper - .create(object, conversionService); + final BeanWrapper wrapper = object instanceof BeanWrapper ? (BeanWrapper) object : BeanWrapper.create(object, + conversionService); object = wrapper == null ? object : wrapper.getBean(); if (!entity.getType().isAssignableFrom(object.getClass())) { @@ -351,7 +336,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem CassandraPersistentProperty idProperty = entity.getIdProperty(); if (idProperty != null) { - return wrapper.getProperty(entity.getIdProperty(), idProperty.getType(), useFieldAccessOnly); + return wrapper.getProperty(entity.getIdProperty(), idProperty.getType()); } // if the class doesn't have an id property, then it's using MapId @@ -361,7 +346,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter implem @Override public void doWithPersistentProperty(CassandraPersistentProperty p) { if (p.isPrimaryKeyColumn()) { - id.with(p.getName(), (Serializable) wrapper.getProperty(p, p.getType(), useFieldAccessOnly)); + id.with(p.getName(), (Serializable) wrapper.getProperty(p, p.getType())); } } }); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java index 1a8f6b390..372eac274 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraTemplate.java @@ -55,20 +55,18 @@ import com.datastax.driver.core.querybuilder.Update; * @author Alex Shvid * @author David Webb * @author Matthew T. Adams - * + * @author Oliver Gierke * @see CqlTemplate */ public class CassandraTemplate extends CqlTemplate implements CassandraOperations { protected CassandraConverter cassandraConverter; protected CassandraMappingContext mappingContext; - protected boolean useFieldAccessOnly = false; /** * Default Constructor for wiring in the required components later */ - public CassandraTemplate() { - } + public CassandraTemplate() {} /** * Constructor if only session and converter are known at time of Template Creation @@ -98,19 +96,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation return mappingContext; } - public boolean getUseFieldAccessOnly() { - return useFieldAccessOnly; - } - - /** - * Whether only fields should be used when accessing a persistent entity's data. - * - * @param useFieldAccessOnly - */ - public void setUseFieldAccessOnly(boolean useFieldAccessOnly) { - this.useFieldAccessOnly = useFieldAccessOnly; - } - @Override public void afterPropertiesSet() { super.afterPropertiesSet(); @@ -313,8 +298,7 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation CassandraPersistentEntity idEntity = idProperty.getCompositePrimaryKeyEntity(); - final BeanWrapper, Object> idWrapper = BeanWrapper - ., Object> create(id, cassandraConverter.getConversionService()); + final BeanWrapper idWrapper = BeanWrapper.create(id, cassandraConverter.getConversionService()); idEntity.doWithProperties(new PropertyHandler() { @@ -322,7 +306,7 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation public void doWithPersistentProperty(CassandraPersistentProperty p) { clauseCallback.doWithClause(QueryBuilder.eq(p.getColumnName().toCql(), - idWrapper.getProperty(p, p.getActualType(), useFieldAccessOnly))); + idWrapper.getProperty(p, p.getActualType()))); } }); @@ -595,7 +579,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation * @param objectToSave * @param entity * @param optionsByName - * * @return The Query object to run with session.execute(); */ public static Insert createInsertQuery(String tableName, Object objectToSave, QueryOptions options, @@ -623,7 +606,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation * @param objectToSave * @param entity * @param optionsByName - * * @return The Query object to run with session.execute(); */ public static Update toUpdateQuery(String tableName, Object objectToSave, QueryOptions options, @@ -651,7 +633,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation * @param objectsToSave * @param entity * @param optionsByName - * * @return The Query object to run with session.execute(); */ public static Batch toUpdateBatchQuery(String tableName, List objectsToSave, QueryOptions options, @@ -684,7 +665,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation * @param entities * @param entity * @param optionsByName - * * @return The Query object to run with session.execute(); */ public static Batch createInsertBatchQuery(String tableName, List entities, QueryOptions options, @@ -731,7 +711,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation * @param entities * @param entity * @param optionsByName - * * @return */ public static Batch createDeleteBatchQuery(String tableName, List entities, QueryOptions options,