HHH-18321 Avoid search for table group when possible for paths
This commit is contained in:
parent
f977dc343c
commit
e9d3ce0def
|
@ -47,6 +47,7 @@ import org.hibernate.metamodel.mapping.EntityMappingType;
|
||||||
import org.hibernate.metamodel.mapping.MappingModelExpressible;
|
import org.hibernate.metamodel.mapping.MappingModelExpressible;
|
||||||
import org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess;
|
import org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess;
|
||||||
import org.hibernate.metamodel.model.domain.BasicDomainType;
|
import org.hibernate.metamodel.model.domain.BasicDomainType;
|
||||||
|
import org.hibernate.metamodel.model.domain.DomainType;
|
||||||
import org.hibernate.metamodel.model.domain.EmbeddableDomainType;
|
import org.hibernate.metamodel.model.domain.EmbeddableDomainType;
|
||||||
import org.hibernate.metamodel.model.domain.EntityDomainType;
|
import org.hibernate.metamodel.model.domain.EntityDomainType;
|
||||||
import org.hibernate.metamodel.model.domain.ManagedDomainType;
|
import org.hibernate.metamodel.model.domain.ManagedDomainType;
|
||||||
|
@ -791,8 +792,12 @@ public class MappingMetamodelImpl extends QueryParameterBindingTypeResolverImpl
|
||||||
public MappingModelExpressible<?> resolveMappingExpressible(
|
public MappingModelExpressible<?> resolveMappingExpressible(
|
||||||
SqmExpressible<?> sqmExpressible,
|
SqmExpressible<?> sqmExpressible,
|
||||||
Function<NavigablePath, TableGroup> tableGroupLocator) {
|
Function<NavigablePath, TableGroup> tableGroupLocator) {
|
||||||
if ( sqmExpressible instanceof SqmPath ) {
|
if ( sqmExpressible instanceof SqmPath<?> ) {
|
||||||
final SqmPath<?> sqmPath = (SqmPath<?>) sqmExpressible;
|
final SqmPath<?> sqmPath = (SqmPath<?>) sqmExpressible;
|
||||||
|
final DomainType<?> sqmPathType = sqmPath.getResolvedModel().getSqmPathType();
|
||||||
|
if ( sqmPathType instanceof MappingModelExpressible<?> ) {
|
||||||
|
return (MappingModelExpressible<?>) sqmPathType;
|
||||||
|
}
|
||||||
final NavigablePath navigablePath = sqmPath.getNavigablePath();
|
final NavigablePath navigablePath = sqmPath.getNavigablePath();
|
||||||
if ( navigablePath.getParent() != null ) {
|
if ( navigablePath.getParent() != null ) {
|
||||||
final TableGroup parentTableGroup = tableGroupLocator.apply( navigablePath.getParent() );
|
final TableGroup parentTableGroup = tableGroupLocator.apply( navigablePath.getParent() );
|
||||||
|
|
Loading…
Reference in New Issue