Skip to content

Commit 8955483

Browse files
committed
HHH-18703 Use natural order table numbers for subclass column closure
1 parent 176b664 commit 8955483

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public class JoinedSubclassEntityPersister extends AbstractEntityPersister {
121121

122122
// the closure of all columns used by the entire hierarchy including
123123
// subclasses and superclasses of this class
124-
private final int[] subclassColumnTableNumberClosure;
124+
private final int[] subclassColumnNaturalOrderTableNumberClosure;
125125
private final String[] subclassColumnClosure;
126126

127127
private final boolean[] isNullableSubclassTable;
@@ -432,18 +432,19 @@ public JoinedSubclassEntityPersister(
432432
final String tableName = property.getValue().getTable().
433433
getQualifiedName( creationContext.getSqlStringGenerationContext() );
434434
final Integer tableNumber = getTableId( tableName, subclassTableNameClosure );
435+
final Integer naturalTableNumber = getTableId( tableName, naturalOrderSubclassTableNameClosure );
435436
propTableNumbers.add( tableNumber );
436437

437438
for ( Selectable selectable : property.getSelectables() ) {
438439
if ( !selectable.isFormula() ) {
439-
columnTableNumbers.add( tableNumber );
440+
columnTableNumbers.add( naturalTableNumber );
440441
Column column = (Column) selectable;
441442
columns.add( column.getQuotedName( dialect ) );
442443
}
443444
}
444445
}
445446

446-
subclassColumnTableNumberClosure = toIntArray( columnTableNumbers );
447+
subclassColumnNaturalOrderTableNumberClosure = toIntArray( columnTableNumbers );
447448
subclassPropertyTableNumberClosure = toIntArray( propTableNumbers );
448449
subclassColumnClosure = toStringArray( columns );
449450

@@ -970,12 +971,12 @@ protected int determineTableNumberForColumn(String columnName) {
970971
&& subclassColumnClosure[i].endsWith( "\"" );
971972
if ( quoted ) {
972973
if ( subclassColumnClosure[i].equals( columnName ) ) {
973-
return subclassColumnTableNumberClosure[i];
974+
return subclassColumnNaturalOrderTableNumberClosure[i];
974975
}
975976
}
976977
else {
977978
if ( subclassColumnClosure[i].equalsIgnoreCase( columnName ) ) {
978-
return subclassColumnTableNumberClosure[i];
979+
return subclassColumnNaturalOrderTableNumberClosure[i];
979980
}
980981
}
981982
}

0 commit comments

Comments
 (0)