/** * Resolve an identifier or unique key value */ public Object resolve(Object value, SessionImplementor session, Object owner) throws HibernateException { if ( isNotEmbedded(session) ) { return value; } if (value==null) { return null; } else { if ( isNull(owner, session) ) return null; //EARLY EXIT! if ( isReferenceToPrimaryKey() ) { return resolveIdentifier( (Serializable) value, session ); } else { return loadByUniqueKey( getAssociatedEntityName(), uniqueKeyPropertyName, value, session ); } } }
/** * Resolve an identifier or unique key value */ public Object resolve(Object value, SessionImplementor session, Object owner) throws HibernateException { if ( isNotEmbedded( session ) ) { return value; } if ( value == null ) { return null; } else { if ( isNull( owner, session ) ) { return null; //EARLY EXIT! } if ( isReferenceToPrimaryKey() ) { return resolveIdentifier( (Serializable) value, session ); } else { return loadByUniqueKey( getAssociatedEntityName(), uniqueKeyPropertyName, value, session ); } } }
/** * Resolve an identifier or unique key value */ public Object resolve(Object value, SessionImplementor session, Object owner) throws HibernateException { if ( isNotEmbedded( session ) ) { return value; } if ( value == null ) { return null; } else { if ( isNull( owner, session ) ) { return null; //EARLY EXIT! } if ( isReferenceToPrimaryKey() ) { return resolveIdentifier( (Serializable) value, session ); } else { return loadByUniqueKey( getAssociatedEntityName(), uniqueKeyPropertyName, value, session ); } } }
protected final Object getIdentifier(Object value, SessionImplementor session) throws HibernateException { if ( isNotEmbedded(session) ) return value; if ( isReferenceToPrimaryKey() ) { return ForeignKeys.getEntityIdentifierIfNotUnsaved(associatedEntityName, value, session); //tolerates nulls } else if (value==null) { return null; } else { return session.getFactory() .getEntityPersister( getAssociatedEntityName() ) .getPropertyValue( value, uniqueKeyPropertyName, session.getEntityMode() ); } }
protected final Object getIdentifier(Object value, SessionImplementor session) throws HibernateException { if ( isNotEmbedded(session) ) { return value; } if ( isReferenceToPrimaryKey() ) { return ForeignKeys.getEntityIdentifierIfNotUnsaved( getAssociatedEntityName(), value, session ); //tolerates nulls } else if ( value == null ) { return null; } else { EntityPersister entityPersister = session.getFactory().getEntityPersister( getAssociatedEntityName() ); Object propertyValue = entityPersister.getPropertyValue( value, uniqueKeyPropertyName ); // We now have the value of the property-ref we reference. However, // we need to dig a little deeper, as that property might also be // an entity type, in which case we need to resolve its identitifier Type type = entityPersister.getPropertyType( uniqueKeyPropertyName ); if ( type.isEntityType() ) { propertyValue = ( ( EntityType ) type ).getIdentifier( propertyValue, session ); } return propertyValue; } }
protected final Object getIdentifier(Object value, SessionImplementor session) throws HibernateException { if ( isNotEmbedded(session) ) { return value; } if ( isReferenceToPrimaryKey() ) { return ForeignKeys.getEntityIdentifierIfNotUnsaved( getAssociatedEntityName(), value, session ); //tolerates nulls } else if ( value == null ) { return null; } else { EntityPersister entityPersister = session.getFactory().getEntityPersister( getAssociatedEntityName() ); Object propertyValue = entityPersister.getPropertyValue( value, uniqueKeyPropertyName ); // We now have the value of the property-ref we reference. However, // we need to dig a little deeper, as that property might also be // an entity type, in which case we need to resolve its identitifier Type type = entityPersister.getPropertyType( uniqueKeyPropertyName ); if ( type.isEntityType() ) { propertyValue = ( ( EntityType ) type ).getIdentifier( propertyValue, session ); } return propertyValue; } }