Top Description Fields Constructors Methods
org.hibernate.loader.plan.exec.internal

public Class AliasResolutionContextImpl

extends Object
implements AliasResolutionContext
Class Inheritance
All Implemented Interfaces
org.hibernate.loader.plan.exec.spi.AliasResolutionContext
Imports
java.io.ByteArrayOutputStream, .PrintStream, .PrintWriter, java.util.HashMap, .Map, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.internal.CoreLogging, org.hibernate.internal.util.StringHelper, org.hibernate.loader.CollectionAliases, .DefaultEntityAliases, .EntityAliases, .GeneratedCollectionAliases, org.hibernate.loader.internal.AliasConstantsHelper, org.hibernate.loader.plan.build.spi.QuerySpaceTreePrinter, .TreePrinterHelper, org.hibernate.loader.plan.exec.spi.AliasResolutionContext, .CollectionReferenceAliases, .EntityReferenceAliases, org.hibernate.loader.plan.spi.Join, .LoadPlan, .QuerySpace, org.hibernate.persister.collection.CollectionPersister, org.hibernate.persister.entity.EntityPersister, .Loadable, org.hibernate.type.EntityType, org.jboss.logging.Logger

Provides aliases that are used by load queries and ResultSet processors.
Authors
Gail Badner, Steve Ebersole

Field Summary

Modifier and TypeField and Description
private Map<String, CollectionReferenceAliases>
private Map<String, String>
private int
private int
private Map<String, EntityReferenceAliases>
private static final Logger
private Map<String, String>
private final SessionFactoryImplementor
sessionFactory

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Constructor Summary

AccessConstructor and Description
public
AliasResolutionContextImpl(SessionFactoryImplementor
The session factory
sessionFactory
)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
Constructs a AliasResolutionContextImpl without any source aliases.
public
AliasResolutionContextImpl(SessionFactoryImplementor
The session factory
sessionFactory
,
int
The seed value to use for generating the suffix used when generating SQL aliases.
suffixSeed
)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
Constructs a AliasResolutionContextImpl with the specified seed for unique alias suffixes.

Method Summary

Modifier and TypeMethod and Description
private CollectionAliases
private EntityReferenceAliases
createCollectionElementAliases(CollectionPersister collectionPersister, String tableAlias, String elementQuerySpaceUid)

private EntityAliases
private String
private String
private String
private void
dumpJoins(Iterable<Join> joins, int depth, PrintWriter printWriter)

private void
dumpQuerySpace(QuerySpace querySpace, int depth, PrintWriter printWriter)

public void
dumpResolutions(LoadPlan
The loadplan that was processed.
loadPlan
)

USes its defined logger to generate a resolution report.

private String
public CollectionReferenceAliases

Returns:

the generated collection reference aliases.
generateCollectionReferenceAliases
(String
The query space UID for the collection reference.
collectionQuerySpaceUid
,
CollectionPersister
The collection persister for collection reference.
persister
,
String
The query space UID for the collection element if the element is an entity type; null, otherwise.
elementQuerySpaceUid
)

Generate the collection reference aliases for a particular org.hibernate.loader.plan.spi.CollectionReference and register the generated value using the query space UID.

private void
generateDetailLines(QuerySpace querySpace, int depth, PrintWriter printWriter)

public EntityReferenceAliases

Returns:

the generated entity reference aliases.
generateEntityReferenceAliases
(String
The query space UID for the entity reference.
uid
,
EntityPersister
The entity persister for entity reference.
entityPersister
)

Generate the entity reference aliases for a particular org.hibernate.loader.plan.spi.EntityReference and register the generated value using the query space UID.

private EntityReferenceAliases
generateEntityReferenceAliases(String uid, String tableAlias, EntityPersister entityPersister)

public void
registerCompositeQuerySpaceUidResolution(String rightHandSideUid, String leftHandSideTableAlias)

private void
registerQuerySpaceAliases(String querySpaceUid, EntityReferenceAliases entityReferenceAliases)

private void
registerQuerySpaceAliases(String querySpaceUid, CollectionReferenceAliases collectionReferenceAliases)

private void
registerSqlTableAliasMapping(String querySpaceUid, String sqlTableAlias)

public CollectionReferenceAliases
resolveCollectionReferenceAliases(String
The QuerySpace UID whose CollectionReferenceAliases we want to look up.
querySpaceUid
)

Implements org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveCollectionReferenceAliases.

Resolve the given QuerySpace UID to the CollectionReferenceAliases representing the SQL aliases used in building the SQL query.
public EntityReferenceAliases
resolveEntityReferenceAliases(String
The QuerySpace UID whose EntityReferenceAliases we want to look up.
querySpaceUid
)

Implements org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveEntityReferenceAliases.

Resolve the given QuerySpace UID to the EntityReferenceAliases representing the SQL aliases used in building the SQL query.
public String
protected SessionFactoryImplementor
sessionFactory()

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

collectionReferenceAliasesMapback to summary
private Map<String, CollectionReferenceAliases> collectionReferenceAliasesMap
compositeQuerySpaceUidToSqlTableAliasMapback to summary
private Map<String, String> compositeQuerySpaceUidToSqlTableAliasMap
currentAliasSuffixback to summary
private int currentAliasSuffix
currentTableAliasSuffixback to summary
private int currentTableAliasSuffix
entityReferenceAliasesMapback to summary
private Map<String, EntityReferenceAliases> entityReferenceAliasesMap
logback to summary
private static final Logger log
querySpaceUidToSqlTableAliasMapback to summary
private Map<String, String> querySpaceUidToSqlTableAliasMap
sessionFactoryback to summary
private final SessionFactoryImplementor sessionFactory

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

Constructor Detail

AliasResolutionContextImplback to summary
public AliasResolutionContextImpl(SessionFactoryImplementor sessionFactory)

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

Constructs a AliasResolutionContextImpl without any source aliases. This form is used in non-query contexts. Example of query contexts are: HQL, criteria, etc.

Parameters
sessionFactory:SessionFactoryImplementor

The session factory

AliasResolutionContextImplback to summary
public AliasResolutionContextImpl(SessionFactoryImplementor sessionFactory, int suffixSeed)

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

Constructs a AliasResolutionContextImpl with the specified seed for unique alias suffixes.

Parameters
sessionFactory:SessionFactoryImplementor

The session factory

suffixSeed:int

The seed value to use for generating the suffix used when generating SQL aliases.

Method Detail

createCollectionAliasesback to summary
private CollectionAliases createCollectionAliases(CollectionPersister collectionPersister)
createCollectionElementAliasesback to summary
private EntityReferenceAliases createCollectionElementAliases(CollectionPersister collectionPersister, String tableAlias, String elementQuerySpaceUid)
createEntityAliasesback to summary
private EntityAliases createEntityAliases(EntityPersister entityPersister)
createSuffixback to summary
private String createSuffix()
createTableAliasback to summary
private String createTableAlias(EntityPersister entityPersister)
createTableAliasback to summary
private String createTableAlias(String name)
dumpJoinsback to summary
private void dumpJoins(Iterable<Join> joins, int depth, PrintWriter printWriter)
dumpQuerySpaceback to summary
private void dumpQuerySpace(QuerySpace querySpace, int depth, PrintWriter printWriter)
dumpResolutionsback to summary
public void dumpResolutions(LoadPlan loadPlan)

USes its defined logger to generate a resolution report.

Parameters
loadPlan:LoadPlan

The loadplan that was processed.

extractDetailsback to summary
private String extractDetails(QuerySpace querySpace)
generateCollectionReferenceAliasesback to summary
public CollectionReferenceAliases generateCollectionReferenceAliases(String collectionQuerySpaceUid, CollectionPersister persister, String elementQuerySpaceUid)

Generate the collection reference aliases for a particular org.hibernate.loader.plan.spi.CollectionReference and register the generated value using the query space UID.

Once generated, there are two methods that can be used to do look ups by the specified query space UID:

Parameters
collectionQuerySpaceUid:String

The query space UID for the collection reference.

persister:CollectionPersister

The collection persister for collection reference.

elementQuerySpaceUid:String

The query space UID for the collection element if the element is an entity type; null, otherwise.

Returns:CollectionReferenceAliases

the generated collection reference aliases.

Exceptions
IllegalArgumentException:
if the collection element is an entity type and elementQuerySpaceUid is null.
See Also
org.hibernate.loader.plan.spi.CollectionReference#getQuerySpaceUid(), org.hibernate.loader.plan.spi.CollectionReference#getCollectionPersister()
generateDetailLinesback to summary
private void generateDetailLines(QuerySpace querySpace, int depth, PrintWriter printWriter)
generateEntityReferenceAliasesback to summary
public EntityReferenceAliases generateEntityReferenceAliases(String uid, EntityPersister entityPersister)

Generate the entity reference aliases for a particular org.hibernate.loader.plan.spi.EntityReference and register the generated value using the query space UID.

Once generated, there are two methods that can be used to do look ups by the specified query space UID:

Parameters
uid:String

The query space UID for the entity reference.

entityPersister:EntityPersister

The entity persister for entity reference.

Returns:EntityReferenceAliases

the generated entity reference aliases.

See Also
org.hibernate.loader.plan.spi.EntityReference#getQuerySpaceUid(), org.hibernate.loader.plan.spi.EntityReference#getEntityPersister()
generateEntityReferenceAliasesback to summary
private EntityReferenceAliases generateEntityReferenceAliases(String uid, String tableAlias, EntityPersister entityPersister)
registerCompositeQuerySpaceUidResolutionback to summary
public void registerCompositeQuerySpaceUidResolution(String rightHandSideUid, String leftHandSideTableAlias)
registerQuerySpaceAliasesback to summary
private void registerQuerySpaceAliases(String querySpaceUid, EntityReferenceAliases entityReferenceAliases)
registerQuerySpaceAliasesback to summary
private void registerQuerySpaceAliases(String querySpaceUid, CollectionReferenceAliases collectionReferenceAliases)
registerSqlTableAliasMappingback to summary
private void registerSqlTableAliasMapping(String querySpaceUid, String sqlTableAlias)
resolveCollectionReferenceAliasesback to summary
public CollectionReferenceAliases resolveCollectionReferenceAliases(String querySpaceUid)

Implements org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveCollectionReferenceAliases.

Doc from org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveCollectionReferenceAliases.

Resolve the given QuerySpace UID to the CollectionReferenceAliases representing the SQL aliases used in building the SQL query.

Assumes that a QuerySpace has already been registered. As such this method simply returns null if no QuerySpace with that UID has yet been resolved in the context.

Parameters
querySpaceUid:String

The QuerySpace UID whose CollectionReferenceAliases we want to look up.

Returns:CollectionReferenceAliases

The corresponding QuerySpace UID, or null.

Annotations
@Override
resolveEntityReferenceAliasesback to summary
public EntityReferenceAliases resolveEntityReferenceAliases(String querySpaceUid)

Implements org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveEntityReferenceAliases.

Doc from org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveEntityReferenceAliases.

Resolve the given QuerySpace UID to the EntityReferenceAliases representing the SQL aliases used in building the SQL query.

Assumes that a QuerySpace has already been registered. As such this method simply returns null if no QuerySpace with that UID has yet been resolved in the context.

Parameters
querySpaceUid:String

The QuerySpace UID whose EntityReferenceAliases we want to look up.

Returns:EntityReferenceAliases

The corresponding QuerySpace UID, or null.

Annotations
@Override
resolveSqlTableAliasFromQuerySpaceUidback to summary
public String resolveSqlTableAliasFromQuerySpaceUid(String querySpaceUid)

Implements org.hibernate.loader.plan.exec.spi.AliasResolutionContext.resolveSqlTableAliasFromQuerySpaceUid.

Annotations
@Override
sessionFactoryback to summary
protected SessionFactoryImplementor sessionFactory()

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.