Skip to content

Commit 556285b

Browse files
committed
HHH-18703 Use natural order table numbers for subclass column closure
1 parent 92cbbc5 commit 556285b

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
@@ -127,7 +127,7 @@ public class JoinedSubclassEntityPersister extends AbstractEntityPersister {
127127

128128
// the closure of all columns used by the entire hierarchy including
129129
// subclasses and superclasses of this class
130-
private final int[] subclassColumnTableNumberClosure;
130+
private final int[] subclassColumnNaturalOrderTableNumberClosure;
131131
// private final int[] subclassFormulaTableNumberClosure;
132132
private final String[] subclassColumnClosure;
133133

@@ -470,11 +470,12 @@ public JoinedSubclassEntityPersister(
470470
final String tableName = property.getValue().getTable().
471471
getQualifiedName( creationContext.getSqlStringGenerationContext() );
472472
final Integer tableNumber = getTableId( tableName, subclassTableNameClosure );
473+
final Integer naturalTableNumber = getTableId( tableName, naturalOrderSubclassTableNameClosure );
473474
propTableNumbers.add( tableNumber );
474475

475476
for ( Selectable selectable : property.getSelectables() ) {
476477
if ( !selectable.isFormula() ) {
477-
columnTableNumbers.add( tableNumber );
478+
columnTableNumbers.add( naturalTableNumber );
478479
Column column = (Column) selectable;
479480
columns.add( column.getQuotedName( dialect ) );
480481
}
@@ -484,7 +485,7 @@ public JoinedSubclassEntityPersister(
484485
}
485486
}
486487

487-
subclassColumnTableNumberClosure = toIntArray( columnTableNumbers );
488+
subclassColumnNaturalOrderTableNumberClosure = toIntArray( columnTableNumbers );
488489
subclassPropertyTableNumberClosure = toIntArray( propTableNumbers );
489490
// subclassFormulaTableNumberClosure = ArrayHelper.toIntArray( formulaTableNumbers );
490491
subclassColumnClosure = toStringArray( columns );
@@ -1069,12 +1070,12 @@ public int determineTableNumberForColumn(String columnName) {
10691070
&& subclassColumnClosure[i].endsWith( "\"" );
10701071
if ( quoted ) {
10711072
if ( subclassColumnClosure[i].equals( columnName ) ) {
1072-
return subclassColumnTableNumberClosure[i];
1073+
return subclassColumnNaturalOrderTableNumberClosure[i];
10731074
}
10741075
}
10751076
else {
10761077
if ( subclassColumnClosure[i].equalsIgnoreCase( columnName ) ) {
1077-
return subclassColumnTableNumberClosure[i];
1078+
return subclassColumnNaturalOrderTableNumberClosure[i];
10781079
}
10791080
}
10801081
}

0 commit comments

Comments
 (0)