Skip to content

Commit 89bf82f

Browse files
committed
Avoid eagerly resolving secondary tables when using discriminator path
1 parent cab03a2 commit 89bf82f

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
import org.hibernate.persister.entity.AbstractEntityPersister;
9595
import org.hibernate.persister.entity.EntityPersister;
9696
import org.hibernate.persister.entity.Joinable;
97+
import org.hibernate.persister.entity.SingleTableEntityPersister;
9798
import org.hibernate.query.sqm.BinaryArithmeticOperator;
9899
import org.hibernate.query.BindableType;
99100
import org.hibernate.query.sqm.CastType;
@@ -2425,6 +2426,11 @@ protected void registerTypeUsage(DiscriminatorSqmPath path) {
24252426
final TableGroup tableGroup = getFromClauseAccess().getTableGroup( path.getNavigablePath().getParent() );
24262427
final EntityMappingType mappingType = (EntityMappingType) tableGroup.getModelPart().getPartMappingType();
24272428
final AbstractEntityPersister persister = (AbstractEntityPersister) mappingType.getEntityPersister();
2429+
// Avoid doing this for single table entity persisters, as the table span includes secondary tables,
2430+
// which we don't want to resolve, though we know that there is only a single table anyway
2431+
if ( persister instanceof SingleTableEntityPersister ) {
2432+
return;
2433+
}
24282434
final int subclassTableSpan = persister.getSubclassTableSpan();
24292435
for ( int i = 0; i < subclassTableSpan; i++ ) {
24302436
tableGroup.resolveTableReference( persister.getSubclassTableName( i ) );

0 commit comments

Comments
 (0)