Skip to content

Commit

Permalink
Issue8 - Allow deleting by name.
Browse files Browse the repository at this point in the history
  • Loading branch information
israelcolomer committed Mar 11, 2016
1 parent cffb144 commit b4ae727
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
public interface QueryBuilder extends SelectQueryBuilder {
WhereBuilder<UpdateQueryExecution> deleteFrom(String table);
WhereBuilder<UpdateQueryExecution> deleteFrom(Outline<?> outline);
WhereBuilder<UpdateQueryExecution> deleteFromNamed(String table);
WhereBuilder<UpdateQueryExecution> deleteFromNamed(Outline<?> outline);
InsertBuilder insertInto(String table);
InsertBuilder insertInto(Outline<?> outline);
SelectBuilder selectAll();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ public abstract class QueryBuilderImpl implements QueryBuilder {
private static final InsertSuffixBuilder EMPTY_UPDATE_BUILDER = new EmptyUpdateSuffixBuilder();

private static final String SQL_ASSIGNMENT = " = ";
private static final String SQL_DELETE_FROM = "DELETE FROM ";
private static final String SQL_DELETE = "DELETE ";
private static final String SQL_EQ = " = ";
private static final String SQL_FROM = " FROM ";
private static final String SQL_DELETE_FROM = SQL_DELETE + SQL_FROM;
private static final String SQL_INSERT_INTO = "INSERT INTO ";
private static final String SQL_LEFT_JOIN = " LEFT JOIN ";
private static final String SQL_NULL = "NULL";
Expand Down Expand Up @@ -420,6 +421,16 @@ public WhereBuilder<UpdateQueryExecution> deleteFrom(Outline<?> outline) {
return deleteFrom(outline.pluralName());
}

@Override
public WhereBuilder<UpdateQueryExecution> deleteFromNamed(String table) {
return new UpdateWhereClause(new StringBuilder(SQL_DELETE).append(table).append(SQL_FROM).append(table));
}

@Override
public WhereBuilder<UpdateQueryExecution> deleteFromNamed(Outline<?> outline) {
return deleteFromNamed(outline.pluralName());
}

@Override
public InsertBuilder insertInto(String table) {
return new InsertQuery(table);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,21 +211,27 @@ public void deleteQueries() {
TestQueryBuilderImpl queryBuilder = new TestQueryBuilderImpl();

queryBuilder.deleteFrom("table_name").all();
assertEquals("DELETE FROM table_name", queryBuilder.getLastQuery());
assertEquals("DELETE FROM table_name", queryBuilder.getLastQuery());
assertTrue(queryBuilder.getLastWasUpdate());

queryBuilder.deleteFrom("table_name").where().eq("int_column", 2).execute();
assertEquals("DELETE FROM table_name WHERE int_column = ?", queryBuilder.getLastQuery());
assertArrayEquals(new Object[] { 2 }, queryBuilder.getLastParameters());
assertEquals("DELETE FROM table_name WHERE int_column = ?", queryBuilder.getLastQuery());
assertArrayEquals(new Object[]{2}, queryBuilder.getLastParameters());
assertTrue(queryBuilder.getLastWasUpdate());

queryBuilder.deleteFrom("table_name").where().eq("boolean_column", true).execute();
assertEquals("DELETE FROM table_name WHERE boolean_column = ?", queryBuilder.getLastQuery());
assertEquals("DELETE FROM table_name WHERE boolean_column = ?", queryBuilder.getLastQuery());
assertArrayEquals(new Object[] { true }, queryBuilder.getLastParameters());
assertTrue(queryBuilder.getLastWasUpdate());

queryBuilder.deleteFrom("table_name").where().eq("string_column", "value").execute();
assertEquals("DELETE FROM table_name WHERE string_column = ?", queryBuilder.getLastQuery());
assertEquals("DELETE FROM table_name WHERE string_column = ?", queryBuilder.getLastQuery());
assertArrayEquals(new Object[] { "value" }, queryBuilder.getLastParameters());
assertTrue(queryBuilder.getLastWasUpdate());

queryBuilder.deleteFromNamed("table_name")
.where().eq("string_column", "value").execute();
assertEquals("DELETE table_name FROM table_name WHERE string_column = ?", queryBuilder.getLastQuery());
assertArrayEquals(new Object[] { "value" }, queryBuilder.getLastParameters());
assertTrue(queryBuilder.getLastWasUpdate());
}
Expand Down

0 comments on commit b4ae727

Please sign in to comment.