Skip to content

Commit 24d25ce

Browse files
mbelladebeikov
authored andcommitted
HHH-17686 Avoid internal use of pruned expression for named references
1 parent 702caf4 commit 24d25ce

File tree

3 files changed

+6
-13
lines changed

3 files changed

+6
-13
lines changed

hibernate-core/src/main/java/org/hibernate/sql/ast/spi/AbstractSqlAstTranslator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5710,7 +5710,7 @@ protected boolean rendersTableReferenceAlias(Clause clause) {
57105710
}
57115711

57125712
protected void registerAffectedTable(NamedTableReference tableReference) {
5713-
registerAffectedTable( tableReference.getTableExpression() );
5713+
tableReference.applyAffectedTableNames( this::registerAffectedTable );
57145714
}
57155715

57165716
protected void registerAffectedTable(String tableExpression) {

hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/NamedTableReference.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.function.Consumer;
1313
import java.util.function.Function;
1414

15+
import org.hibernate.Internal;
1516
import org.hibernate.spi.NavigablePath;
1617
import org.hibernate.sql.ast.SqlAstWalker;
1718

@@ -60,31 +61,26 @@ public void accept(SqlAstWalker sqlTreeWalker) {
6061
sqlTreeWalker.visitNamedTableReference( this );
6162
}
6263

63-
@Override
64-
public void applyAffectedTableNames(Consumer<String> nameCollector) {
65-
nameCollector.accept( getTableExpression() );
66-
}
67-
6864
@Override
6965
public List<String> getAffectedTableNames() {
70-
return Collections.singletonList( getTableExpression() );
66+
return Collections.singletonList( tableExpression );
7167
}
7268

7369
@Override
7470
public boolean containsAffectedTableName(String requestedName) {
75-
return isEmpty( requestedName ) || getTableExpression().contains( requestedName );
71+
return isEmpty( requestedName ) || tableExpression.equals( requestedName );
7672
}
7773

7874
@Override
7975
public Boolean visitAffectedTableNames(Function<String, Boolean> nameCollector) {
80-
return nameCollector.apply( getTableExpression() );
76+
return nameCollector.apply( tableExpression );
8177
}
8278

8379
@Override
8480
public TableReference resolveTableReference(
8581
NavigablePath navigablePath,
8682
String tableExpression) {
87-
if ( tableExpression.equals( getTableExpression() ) ) {
83+
if ( this.tableExpression.equals( tableExpression ) ) {
8884
return this;
8985
}
9086

hibernate-core/src/main/java/org/hibernate/sql/ast/tree/from/UnionTableReference.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,6 @@ public TableReference getTableReference(
6767
}
6868

6969
private boolean hasTableExpression(String tableExpression) {
70-
if ( tableExpression.equals( getTableExpression() ) ) {
71-
return true;
72-
}
7370
for ( String expression : subclassTableSpaceExpressions ) {
7471
if ( tableExpression.equals( expression ) ) {
7572
return true;

0 commit comments

Comments
 (0)