Skip to content

Commit 6afbb36

Browse files
author
mhyeon-lee
committed
Fix SqlGenerator DML table should not be contain alias
(cherry picked from commit 659b7a8)
1 parent 21967de commit 6afbb36

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

spring-data-jdbc-plus-sql/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/convert/SqlContext.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,16 @@ class SqlContext implements SqlContexts {
4040

4141
SqlContext(RelationalPersistentEntity<?> entity) {
4242
this.entity = entity;
43+
this.table = getEntityTable(entity);
44+
}
45+
46+
private static Table getEntityTable(RelationalPersistentEntity<?> entity) {
4347
Table table = Table.create(entity.getTableName());
4448
SqlIdentifier tableAlias = TableAliasUtils.getTableAlias(entity);
4549
if (tableAlias != null) {
4650
table = table.as(tableAlias);
4751
}
48-
this.table = table;
52+
return table;
4953
}
5054

5155
@Override

spring-data-jdbc-plus-sql/src/main/java/com/navercorp/spring/data/jdbc/plus/sql/convert/SqlGenerator.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ String getDeleteByList() {
429429
String createDeleteAllSql(
430430
@Nullable PersistentPropertyPath<RelationalPersistentProperty> path) {
431431

432-
Table table = getTable();
432+
Table table = getDmlTable();
433433

434434
DeleteBuilder.DeleteWhere deleteAll = Delete.builder().from(table);
435435

@@ -610,7 +610,7 @@ String selectFrom() {
610610
if (join != null) {
611611
joinTables.add(join);
612612
}
613-
613+
614614
Column column = getColumn(extPath);
615615
if (column != null) {
616616
columnExpressions.add(getColumnExpression(extPath, column));
@@ -782,7 +782,7 @@ private String createCountSql() {
782782

783783
private String createInsertSql(Set<SqlIdentifier> additionalColumns) {
784784

785-
Table table = getTable();
785+
Table table = getDmlTable();
786786

787787
Set<SqlIdentifier> columnNamesForInsert =
788788
new TreeSet<>(Comparator.comparing(SqlIdentifier::getReference));
@@ -821,7 +821,7 @@ private String createUpdateWithVersionSql() {
821821

822822
private UpdateBuilder.UpdateWhereAndOr createBaseUpdate() {
823823

824-
Table table = getTable();
824+
Table table = getDmlTable();
825825

826826
List<AssignValue> assignments = columns.getUpdateableColumns() //
827827
.stream() //
@@ -837,12 +837,12 @@ private UpdateBuilder.UpdateWhereAndOr createBaseUpdate() {
837837
}
838838

839839
private String createDeleteSql() {
840-
return render(createBaseDeleteById(getTable()).build());
840+
return render(createBaseDeleteById(getDmlTable()).build());
841841
}
842842

843843
private String createDeleteByIdAndVersionSql() {
844844

845-
Delete delete = createBaseDeleteById(getTable()) //
845+
Delete delete = createBaseDeleteById(getDmlTable()) //
846846
.and(getVersionColumn().isEqualTo(
847847
SQL.bindMarker(":" + renderReference(VERSION_SQL_PARAMETER)))) //
848848
.build();
@@ -883,7 +883,7 @@ private String createDeleteByPathAndCriteria(PersistentPropertyPathExtension pat
883883

884884
private String createDeleteByListSql() {
885885

886-
Table table = getTable();
886+
Table table = getDmlTable();
887887

888888
Delete delete = Delete.builder() //
889889
.from(table) //
@@ -913,6 +913,15 @@ private Table getTable() {
913913
return sqlContext.getTable();
914914
}
915915

916+
// DML Table should not be Aliased Table
917+
private Table getDmlTable() {
918+
Table table = sqlContext.getTable();
919+
if (table instanceof Aliased) {
920+
table = Table.create(table.getName());
921+
}
922+
return table;
923+
}
924+
916925
private Column getIdColumn() {
917926
return sqlContext.getIdColumn();
918927
}

0 commit comments

Comments
 (0)