HHH-17832 Register projection usage for circular bidirectional fetch
This commit is contained in:
parent
747a1024da
commit
bcbae00552
|
@ -60,6 +60,7 @@ import org.hibernate.metamodel.mapping.VirtualModelPart;
|
|||
import org.hibernate.metamodel.model.domain.NavigableRole;
|
||||
import org.hibernate.persister.collection.AbstractCollectionPersister;
|
||||
import org.hibernate.persister.entity.AbstractEntityPersister;
|
||||
import org.hibernate.persister.entity.EntityNameUse;
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
import org.hibernate.persister.entity.JoinedSubclassEntityPersister;
|
||||
import org.hibernate.property.access.spi.PropertyAccess;
|
||||
|
@ -1300,6 +1301,12 @@ public class ToOneAttributeMapping
|
|||
final FromClauseAccess fromClauseAccess = creationState.getSqlAstCreationState().getFromClauseAccess();
|
||||
final TableGroup tableGroup = fromClauseAccess.getTableGroup( referencedNavigablePath );
|
||||
fromClauseAccess.registerTableGroup( fetchablePath, tableGroup );
|
||||
// Register a PROJECTION usage as we're effectively selecting the bidirectional association
|
||||
creationState.getSqlAstCreationState().registerEntityNameUsage(
|
||||
tableGroup,
|
||||
EntityNameUse.PROJECTION,
|
||||
entityMappingType.getEntityName()
|
||||
);
|
||||
return buildEntityFetchJoined(
|
||||
fetchParent,
|
||||
this,
|
||||
|
|
|
@ -3047,7 +3047,12 @@ public abstract class BaseSqmToSqlAstConverter<T extends Statement> extends Base
|
|||
TableGroup tableGroup,
|
||||
EntityNameUse entityNameUse,
|
||||
String hibernateEntityName) {
|
||||
registerEntityNameUsage( tableGroup, entityNameUse, hibernateEntityName, false );
|
||||
registerEntityNameUsage(
|
||||
tableGroup,
|
||||
entityNameUse,
|
||||
hibernateEntityName,
|
||||
entityNameUse.getKind() == EntityNameUse.UseKind.PROJECTION
|
||||
);
|
||||
}
|
||||
|
||||
private void registerEntityNameUsage(
|
||||
|
|
Loading…
Reference in New Issue