diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java index aba2e7c4f..a03371784 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java @@ -39,7 +39,7 @@ public interface CassandraAdminOperations extends CassandraOperations { * doesn't exist, parameter {@code ifNotExists} is ignored, the table is created and {@literal true} is returned. * * @param ifNotExists If true, will only create the table if it doesn't exist, else the create operation will be - * ignored and the method will return {@literal false}. + * ignored. * @param tableName The name of the table. * @param entityClass The class whose fields determine the columns created. * @param optionsByName Table options, given by the string option name and the appropriate option value. @@ -54,6 +54,15 @@ public interface CassandraAdminOperations extends CassandraOperations { */ void dropTable(CqlIdentifier tableName); + /** + * Drops the named table. + * + * @param ifExists If true, will only drop the table if it exists, else the create operation will be ignored. + * @param tableName The name of the table. + * @since 2.1 + */ + void dropTable(boolean ifExists, CqlIdentifier tableName); + /** * Lookup {@link TableMetadata}. * diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java index 73c69c9f1..e9619ab2e 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminTemplate.java @@ -90,7 +90,13 @@ public class CassandraAdminTemplate extends CassandraTemplate implements Cassand */ @Override public void dropTable(CqlIdentifier tableName) { - getCqlOperations().execute(DropTableCqlGenerator.toCql(DropTableSpecification.dropTable(tableName))); + dropTable(false, tableName); + } + + @Override + public void dropTable(boolean ifExists, CqlIdentifier tableName) { + getCqlOperations() + .execute(DropTableCqlGenerator.toCql(DropTableSpecification.dropTable(tableName).ifExists(ifExists))); } /* diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/DropTableCqlGenerator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/DropTableCqlGenerator.java index 4b4959e4f..d27bbad56 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/DropTableCqlGenerator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/DropTableCqlGenerator.java @@ -21,6 +21,7 @@ import org.springframework.data.cassandra.core.cql.keyspace.DropTableSpecificati * CQL generator for generating a {@code DROP TABLE} statement. * * @author Matthew T. Adams + * @author Mark Paluch */ public class DropTableCqlGenerator extends TableNameCqlGenerator { @@ -35,7 +36,7 @@ public class DropTableCqlGenerator extends TableNameCqlGenerator