Package org.hibernate.persister.entity

Examples of org.hibernate.persister.entity.PropertyMapping


    //      we'd need to "fall through" to using the property mapping.
    if ( persister != null && propertyName.equals( propertyPath ) && propertyName.equals( persister.getIdentifierPropertyName() ) ) {
      type = persister.getIdentifierType();
    }
    else // Otherwise, use the property mapping.
      PropertyMapping mapping = getPropertyMapping( propertyName );
      type = mapping.toType( propertyPath );
    }
    if ( type == null ) {
      throw new MappingException( "Property " + propertyName + " does not exist in " +
          ( ( queryableCollection == null ) ? "class" : "collection" ) + " "
          + ( ( queryableCollection == null ) ? fromElement.getClassName() : queryableCollection.getRole() ) );
View Full Code Here


    return toColumns( tableAlias, path, inSelect, false );
  }

  String[] toColumns(String tableAlias, String path, boolean inSelect, boolean forceAlias) {
    checkInitialized();
    PropertyMapping propertyMapping = getPropertyMapping( path );
    // If this from element is a collection and the path is a collection property (maxIndex, etc.) then
    // generate a sub-query.
    if ( !inSelect && queryableCollection != null && CollectionProperties.isCollectionProperty( path ) ) {
      Map enabledFilters = fromElement.getWalker().getEnabledFilters();
      String subquery = CollectionSubqueryFactory.createCollectionSubquery(
          joinSequence,
              enabledFilters,
          propertyMapping.toColumns( tableAlias, path )
      );
      if ( log.isDebugEnabled() ) {
        log.debug( "toColumns(" + tableAlias + "," + path + ") : subquery = " + subquery );
      }
      return new String[]{"(" + subquery + ")"};
    }
    else {
      if ( forceAlias ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().getStatementType() == HqlSqlTokenTypes.SELECT ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().getCurrentClauseType() == HqlSqlTokenTypes.SELECT ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().isSubQuery() ) {
        // for a subquery, the alias to use depends on a few things (we
        // already know this is not an overall SELECT):
        //      1) if this FROM_ELEMENT represents a correlation to the
        //          outer-most query
        //              A) if the outer query represents a multi-table
        //                  persister, we need to use the given alias
        //                  in anticipation of one of the multi-table
        //                  executors being used (as this subquery will
        //                  actually be used in the "id select" phase
        //                  of that multi-table executor)
        //              B) otherwise, we need to use the persister's
        //                  table name as the column qualification
        //      2) otherwise (not correlated), use the given alias
        if ( isCorrelation() ) {
          if ( isMultiTable() ) {
            return propertyMapping.toColumns( tableAlias, path );
          }
          else {
            return propertyMapping.toColumns( extractTableName(), path );
          }
        }
        else {
          return propertyMapping.toColumns( tableAlias, path );
        }
      }
      else {
        String[] columns = propertyMapping.toColumns( path );
        log.trace( "Using non-qualified column reference [" + path + " -> (" + ArrayHelper.toString( columns ) + ")]" );
        return columns;
      }
    }
  }
View Full Code Here

        superQuery != null && superQuery.isName( name )
        );
  }

  PropertyMapping getPropertyMapping(String name) throws QueryException {
    PropertyMapping decorator = getDecoratedPropertyMapping( name );
    if ( decorator != null ) return decorator;

    String type = getType( name );
    if ( type == null ) {
      String role = getRole( name );
View Full Code Here

        superQuery != null && superQuery.isName( name )
        );
  }

  PropertyMapping getPropertyMapping(String name) throws QueryException {
    PropertyMapping decorator = getDecoratedPropertyMapping( name );
    if ( decorator != null ) return decorator;

    String type = getType( name );
    if ( type == null ) {
      String role = getRole( name );
View Full Code Here

    //      we'd need to "fall through" to using the property mapping.
    if ( persister != null && propertyName.equals( propertyPath ) && propertyName.equals( persister.getIdentifierPropertyName() ) ) {
      type = persister.getIdentifierType();
    }
    else // Otherwise, use the property mapping.
      PropertyMapping mapping = getPropertyMapping( propertyName );
      type = mapping.toType( propertyPath );
    }
    if ( type == null ) {
      throw new MappingException( "Property " + propertyName + " does not exist in " +
          ( ( queryableCollection == null ) ? "class" : "collection" ) + " "
          + ( ( queryableCollection == null ) ? fromElement.getClassName() : queryableCollection.getRole() ) );
View Full Code Here

    return toColumns( tableAlias, path, inSelect, false );
  }

  String[] toColumns(String tableAlias, String path, boolean inSelect, boolean forceAlias) {
    checkInitialized();
    PropertyMapping propertyMapping = getPropertyMapping( path );
    // If this from element is a collection and the path is a collection property (maxIndex, etc.) then
    // generate a sub-query.
    if ( !inSelect && queryableCollection != null && CollectionProperties.isCollectionProperty( path ) ) {
      Map enabledFilters = fromElement.getWalker().getEnabledFilters();
      String subquery = CollectionSubqueryFactory.createCollectionSubquery(
          joinSequence,
              enabledFilters,
          propertyMapping.toColumns( tableAlias, path )
      );
      if ( log.isDebugEnabled() ) {
        log.debug( "toColumns(" + tableAlias + "," + path + ") : subquery = " + subquery );
      }
      return new String[]{"(" + subquery + ")"};
    }
    else {
      if ( forceAlias ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().getStatementType() == HqlSqlTokenTypes.SELECT ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().getCurrentClauseType() == HqlSqlTokenTypes.SELECT ) {
        return propertyMapping.toColumns( tableAlias, path );
      }
      else if ( fromElement.getWalker().isSubQuery() ) {
        // for a subquery, the alias to use depends on a few things (we
        // already know this is not an overall SELECT):
        //      1) if this FROM_ELEMENT represents a correlation to the
        //          outer-most query
        //              A) if the outer query represents a multi-table
        //                  persister, we need to use the given alias
        //                  in anticipation of one of the multi-table
        //                  executors being used (as this subquery will
        //                  actually be used in the "id select" phase
        //                  of that multi-table executor)
        //              B) otherwise, we need to use the persister's
        //                  table name as the column qualification
        //      2) otherwise (not correlated), use the given alias
        if ( isCorrelation() ) {
          if ( isMultiTable() ) {
            return propertyMapping.toColumns( tableAlias, path );
          }
          else {
            return propertyMapping.toColumns( extractTableName(), path );
          }
        }
        else {
          return propertyMapping.toColumns( tableAlias, path );
        }
      }
      else {
        String[] columns = propertyMapping.toColumns( path );
        log.trace( "Using non-qualified column reference [" + path + " -> (" + ArrayHelper.toString( columns ) + ")]" );
        return columns;
      }
    }
  }
View Full Code Here

        superQuery != null && superQuery.isName( name )
        );
  }

  PropertyMapping getPropertyMapping(String name) throws QueryException {
    PropertyMapping decorator = getDecoratedPropertyMapping( name );
    if ( decorator != null ) return decorator;

    String type = getType( name );
    if ( type == null ) {
      String role = getRole( name );
View Full Code Here

  protected QueryableCollection getQueryableCollection(
      String entityName,
      String propertyName,
      SessionFactoryImplementor factory) throws HibernateException {
    final PropertyMapping ownerMapping = (PropertyMapping) factory.getEntityPersister( entityName );
    final Type type = ownerMapping.toType( propertyName );
    if ( !type.isCollectionType() ) {
      throw new MappingException(
          "Property path [" + entityName + "." + propertyName + "] does not reference a collection"
      );
    }
View Full Code Here

        superQuery != null && superQuery.isName( name )
        );
  }

  PropertyMapping getPropertyMapping(String name) throws QueryException {
    PropertyMapping decorator = getDecoratedPropertyMapping( name );
    if ( decorator != null ) return decorator;

    String type = getType( name );
    if ( type == null ) {
      String role = getRole( name );
View Full Code Here

    //      we'd need to "fall through" to using the property mapping.
    if ( persister != null && propertyName.equals( propertyPath ) && propertyName.equals( persister.getIdentifierPropertyName() ) ) {
      type = persister.getIdentifierType();
    }
    else {    // Otherwise, use the property mapping.
      PropertyMapping mapping = getPropertyMapping( propertyName );
      type = mapping.toType( propertyPath );
    }
    if ( type == null ) {
      throw new MappingException(
          "Property " + propertyName + " does not exist in " +
              ( ( queryableCollection == null ) ? "class" : "collection" ) + " "
View Full Code Here

TOP

Related Classes of org.hibernate.persister.entity.PropertyMapping

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.