Browse Source

DATAJDBC-394 - Don't use AS for table aliases.

The AS keyword for table aliases is optional for all databases that support it.
It is not supported by Oracle.
Thus not using it makes the generated SQL compatible to more databases.

Original pull request: #162.
pull/163/head
Jens Schauder 7 years ago committed by Mark Paluch
parent
commit
14d79025b5
  1. 2
      spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/FromTableVisitor.java
  2. 2
      spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/DeleteRendererUnitTests.java
  3. 9
      spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java

2
spring-data-relational/src/main/java/org/springframework/data/relational/core/sql/render/FromTableVisitor.java

@ -49,7 +49,7 @@ class FromTableVisitor extends TypedSubtreeVisitor<Table> {
builder.append(context.getNamingStrategy().getName(segment)); builder.append(context.getNamingStrategy().getName(segment));
if (segment instanceof Aliased) { if (segment instanceof Aliased) {
builder.append(" AS ").append(((Aliased) segment).getAlias()); builder.append(" ").append(((Aliased) segment).getAlias());
} }
parent.onRendered(builder); parent.onRendered(builder);

2
spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/DeleteRendererUnitTests.java

@ -60,6 +60,6 @@ public class DeleteRendererUnitTests {
.where(table.column("foo").isEqualTo(table.column("baz"))) // .where(table.column("foo").isEqualTo(table.column("baz"))) //
.build(); .build();
assertThat(SqlRenderer.toString(delete)).isEqualTo("DELETE FROM bar AS my_bar WHERE my_bar.foo = my_bar.baz"); assertThat(SqlRenderer.toString(delete)).isEqualTo("DELETE FROM bar my_bar WHERE my_bar.foo = my_bar.baz");
} }
} }

9
spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java

@ -55,7 +55,7 @@ public class SelectRendererUnitTests {
Select select = Select.builder().select(table.column("foo").as("my_foo")).from(table).build(); Select select = Select.builder().select(table.column("foo").as("my_foo")).from(table).build();
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT my_bar.foo AS my_foo FROM bar AS my_bar"); assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT my_bar.foo AS my_foo FROM bar my_bar");
} }
@Test // DATAJDBC-309 @Test // DATAJDBC-309
@ -163,8 +163,9 @@ public class SelectRendererUnitTests {
.join(tenant).on(tenant.column("tenant_id")).equals(department.column("tenant")) // .join(tenant).on(tenant.column("tenant_id")).equals(department.column("tenant")) //
.build(); .build();
assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT employee.id, department.name FROM employee " assertThat(SqlRenderer.toString(select)).isEqualTo("SELECT employee.id, department.name FROM employee " //
+ "JOIN department ON employee.department_id = department.id " + "AND employee.tenant = department.tenant " + "JOIN department ON employee.department_id = department.id " //
+ "AND employee.tenant = department.tenant " //
+ "JOIN tenant AS tenant_base ON tenant_base.tenant_id = department.tenant"); + "JOIN tenant AS tenant_base ON tenant_base.tenant_id = department.tenant");
} }
@ -177,7 +178,7 @@ public class SelectRendererUnitTests {
Select select = Select.builder().select(column).from(employee).orderBy(OrderByField.from(column).asc()).build(); Select select = Select.builder().select(column).from(employee).orderBy(OrderByField.from(column).asc()).build();
assertThat(SqlRenderer.toString(select)) assertThat(SqlRenderer.toString(select))
.isEqualTo("SELECT emp.name AS emp_name FROM employee AS emp ORDER BY emp_name ASC"); .isEqualTo("SELECT emp.name AS emp_name FROM employee emp ORDER BY emp_name ASC");
} }
@Test // DATAJDBC-309 @Test // DATAJDBC-309

Loading…
Cancel
Save