Search in sources :

Example 1 with EntityIdentifierDefinition

use of org.hibernate.persister.walking.spi.EntityIdentifierDefinition in project hibernate-orm by hibernate.

the class AbstractEntityReference method buildIdentifierDescription.

/**
	 * Builds just the first level of identifier description.  This will be either a simple id descriptor (String,
	 * Long, etc) or some form of composite id (either encapsulated or not).
	 *
	 * @return the descriptor for the identifier
	 */
private EntityIdentifierDescription buildIdentifierDescription() {
    final EntityIdentifierDefinition identifierDefinition = getEntityPersister().getEntityKeyDefinition();
    if (identifierDefinition.isEncapsulated()) {
        final EncapsulatedEntityIdentifierDefinition encapsulatedIdentifierDefinition = (EncapsulatedEntityIdentifierDefinition) identifierDefinition;
        final Type idAttributeType = encapsulatedIdentifierDefinition.getAttributeDefinition().getType();
        if (!CompositeType.class.isInstance(idAttributeType)) {
            return new SimpleEntityIdentifierDescriptionImpl();
        }
    }
    // if we get here, we know we have a composite identifier...
    final ExpandingCompositeQuerySpace querySpace = expandingEntityQuerySpace().makeCompositeIdentifierQuerySpace();
    return identifierDefinition.isEncapsulated() ? buildEncapsulatedCompositeIdentifierDescription(querySpace) : buildNonEncapsulatedCompositeIdentifierDescription(querySpace);
}
Also used : ExpandingCompositeQuerySpace(org.hibernate.loader.plan.build.spi.ExpandingCompositeQuerySpace) CompositeType(org.hibernate.type.CompositeType) Type(org.hibernate.type.Type) EncapsulatedEntityIdentifierDefinition(org.hibernate.persister.walking.spi.EncapsulatedEntityIdentifierDefinition) EncapsulatedEntityIdentifierDefinition(org.hibernate.persister.walking.spi.EncapsulatedEntityIdentifierDefinition) EntityIdentifierDefinition(org.hibernate.persister.walking.spi.EntityIdentifierDefinition) CompositeType(org.hibernate.type.CompositeType)

Aggregations

ExpandingCompositeQuerySpace (org.hibernate.loader.plan.build.spi.ExpandingCompositeQuerySpace)1 EncapsulatedEntityIdentifierDefinition (org.hibernate.persister.walking.spi.EncapsulatedEntityIdentifierDefinition)1 EntityIdentifierDefinition (org.hibernate.persister.walking.spi.EntityIdentifierDefinition)1 CompositeType (org.hibernate.type.CompositeType)1 Type (org.hibernate.type.Type)1