Package org.hibernate.persister.entity

Examples of org.hibernate.persister.entity.OuterJoinLoadable


    super.applyRootReturnSelectFragments( selectStatementBuilder );
  }

  @Override
  protected void applyRootReturnTableFragments(SelectStatementBuilder selectStatementBuilder) {
    final OuterJoinLoadable elementOuterJoinLoadable =
        (OuterJoinLoadable) getElementEntityReference().getEntityPersister();
    //final String tableAlias = getCollectionReferenceAliases().getCollectionTableAlias();
    final String tableAlias = getElementEntityReferenceAliases().getTableAlias();
    final String fragment =
        elementOuterJoinLoadable.fromTableFragment( tableAlias ) +
            elementOuterJoinLoadable.fromJoinFragment( tableAlias, true, true);
    selectStatementBuilder.appendFromClauseFragment( fragment );
  }
View Full Code Here


   * @see org.hibernate.persister.entity.Joinable#fromJoinFragment(java.lang.String, boolean, boolean)
   */
  protected void applyRootReturnTableFragments(SelectStatementBuilder select) {
    final String fromTableFragment;
    final String rootAlias = entityReferenceAliases.getTableAlias();
    final OuterJoinLoadable outerJoinLoadable = (OuterJoinLoadable) getRootEntityReturn().getEntityPersister();
    if ( getQueryBuildingParameters().getLockOptions() != null ) {
      fromTableFragment = getSessionFactory().getDialect().appendLockHint(
          getQueryBuildingParameters().getLockOptions(),
          outerJoinLoadable.fromTableFragment( rootAlias )
      );
      select.setLockOptions( getQueryBuildingParameters().getLockOptions() );
    }
    else if ( getQueryBuildingParameters().getLockMode() != null ) {
      fromTableFragment = getSessionFactory().getDialect().appendLockHint(
          getQueryBuildingParameters().getLockMode(),
          outerJoinLoadable.fromTableFragment( rootAlias )
      );
      select.setLockMode( getQueryBuildingParameters().getLockMode() );
    }
    else {
      fromTableFragment = outerJoinLoadable.fromTableFragment( rootAlias );
    }
    select.appendFromClauseFragment( fromTableFragment + outerJoinLoadable.fromJoinFragment( rootAlias, true, true ) );
  }
View Full Code Here

  protected boolean shouldApplyRootReturnFilterBeforeKeyRestriction() {
    return false;
  }

  protected void applyRootReturnSelectFragments(SelectStatementBuilder selectStatementBuilder) {
    final OuterJoinLoadable outerJoinLoadable = (OuterJoinLoadable) getRootEntityReturn().getEntityPersister();
    selectStatementBuilder.appendSelectClauseFragment(
        outerJoinLoadable.selectFragment(
            entityReferenceAliases.getTableAlias(),
            entityReferenceAliases.getColumnAliases().getSuffix()

        )
    );
View Full Code Here

          getCollectionReferenceAliases().getCollectionTableAlias(),
          getCollectionReferenceAliases().getCollectionColumnAliases().getSuffix()
      )
    );
    if ( getQueryableCollection().isManyToMany() ) {
      final OuterJoinLoadable elementPersister = (OuterJoinLoadable) getQueryableCollection().getElementPersister();
      selectStatementBuilder.appendSelectClauseFragment(
          elementPersister.selectFragment(
              getCollectionReferenceAliases().getElementTableAlias(),
              getCollectionReferenceAliases().getEntityElementColumnAliases().getSuffix()
          )
      );
    }
View Full Code Here

                  final QueryableCollection collectionPersister = (QueryableCollection) joinable;
                  lhsTableName = collectionPersister.getTableName();
                  lhsColumnNames = collectionPersister.getElementColumnNames();
                }
                else {
                  final OuterJoinLoadable entityPersister = (OuterJoinLoadable) locateOwningPersister();
                  lhsTableName = getLHSTableName( aType, attributeNumber(), entityPersister );
                  lhsColumnNames = getLHSColumnNames(
                      aType,
                      attributeNumber(),
                      columnPosition,
View Full Code Here

              true
          )
      );

      // add select fragments from the element entity table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      final OuterJoinLoadable elementPersister = (OuterJoinLoadable) queryableCollection.getElementPersister();
      selectStatementBuilder.appendSelectClauseFragment(
          elementPersister.selectFragment(
              elementTableAlias,
              aliases.getEntityElementColumnAliases().getSuffix()
          )
      );

      // add SQL ORDER-BY fragments
      final String manyToManyOrdering = queryableCollection.getManyToManyOrderByString( collectionTableAlias );
      if ( StringHelper.isNotEmpty( manyToManyOrdering ) ) {
        selectStatementBuilder.appendOrderByFragment( manyToManyOrdering );
      }

      final String ordering = queryableCollection.getSQLOrderByString( collectionTableAlias );
      if ( StringHelper.isNotEmpty( ordering ) ) {
        selectStatementBuilder.appendOrderByFragment( ordering );
      }

      // add an EntityReferenceInitializer for the collection elements (keys also?)
      final EntityReferenceAliases entityReferenceAliases = new EntityReferenceAliasesImpl(
          aliases.getCollectionTableAlias(),
          aliases.getEntityElementColumnAliases()
      );
      aliasResolutionContext.registerQuerySpaceAliases( fetch.getQuerySpaceUid(), entityReferenceAliases );
      readerCollector.add(
          new EntityReferenceInitializerImpl(
              (EntityReference) fetch.getElementGraph(),
              entityReferenceAliases
          )
      );
    }
    else {
      // select the "collection columns"
      selectStatementBuilder.appendSelectClauseFragment(
          queryableCollection.selectFragment(
              aliases.getElementTableAlias(),
              aliases.getCollectionColumnAliases().getSuffix()
          )
      );

      if ( fetch.getCollectionPersister().isOneToMany() ) {
        // if the collection elements are entities, select the entity columns as well
        final OuterJoinLoadable elementPersister = (OuterJoinLoadable) queryableCollection.getElementPersister();
        selectStatementBuilder.appendSelectClauseFragment(
            elementPersister.selectFragment(
                aliases.getElementTableAlias(),
                aliases.getEntityElementColumnAliases().getSuffix()
            )
        );
        final EntityReferenceAliases entityReferenceAliases = new EntityReferenceAliasesImpl(
View Full Code Here

 
  protected abstract String toLeftSqlString(Criteria criteria, CriteriaQuery outerQuery);

  public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
    final SessionFactoryImplementor factory = criteriaQuery.getFactory();
    final OuterJoinLoadable persister =
        ( OuterJoinLoadable ) factory.getEntityPersister( criteriaImpl.getEntityOrClassName() );

    createAndSetInnerQuery( criteriaQuery, factory );
    criteriaImpl.setSession( deriveRootSession( criteria ) );
View Full Code Here

    if ( includeCollectionColumns ) {
//      buf.append( selectFragment( lhsAlias, "" ) )//ignore suffix for collection columns!
      buf.append( selectFragment( lhsAlias, collectionSuffix ) )
          .append( ", " );
    }
    OuterJoinLoadable ojl = ( OuterJoinLoadable ) getElementPersister();
    return buf.append( ojl.selectFragment( lhsAlias, entitySuffix ) )//use suffix for the entity columns
        .toString();
  }
View Full Code Here

      }
      else {
        condition = additionalJoinConditions + " and " + manyToManyFilter;
      }

      final OuterJoinLoadable elementPersister = (OuterJoinLoadable) queryableCollection.getElementPersister();

      addJoins(
          joinFragment,
          elementPersister,
          JoinType.LEFT_OUTER_JOIN,
          elementTableAlias,
          elementPersister.getIdentifierColumnNames(),
          StringHelper.qualify( collectionTableAlias, queryableCollection.getElementColumnNames() ),
          condition
      );
    }
  }
View Full Code Here

              true
          )
      );

      // add select fragments from the element entity table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      final OuterJoinLoadable elementPersister = (OuterJoinLoadable) queryableCollection.getElementPersister();
      selectStatementBuilder.appendSelectClauseFragment(
          elementPersister.selectFragment(
              elementTableAlias,
              aliases.getEntityElementColumnAliases().getSuffix()
          )
      );

      // add SQL ORDER-BY fragments
      final String manyToManyOrdering = queryableCollection.getManyToManyOrderByString( collectionTableAlias );
      if ( StringHelper.isNotEmpty( manyToManyOrdering ) ) {
        selectStatementBuilder.appendOrderByFragment( manyToManyOrdering );
      }

      final String ordering = queryableCollection.getSQLOrderByString( collectionTableAlias );
      if ( StringHelper.isNotEmpty( ordering ) ) {
        selectStatementBuilder.appendOrderByFragment( ordering );
      }

      // add an EntityReferenceInitializer for the collection elements (keys also?)
      final EntityReferenceAliases entityReferenceAliases = new EntityReferenceAliases() {
        @Override
        public String getTableAlias() {
          return aliases.getCollectionTableAlias();
        }

        @Override
        public EntityAliases getColumnAliases() {
          return aliases.getEntityElementColumnAliases();
        }
      };
      aliasResolutionContext.registerQuerySpaceAliases( fetch.getQuerySpaceUid(), entityReferenceAliases );
      readerCollector.add(
          new EntityReferenceInitializerImpl(
              (EntityReference) fetch.getElementGraph(),
              entityReferenceAliases
          )
      );
    }
    else {
      final String rhsTableAlias = aliases.getElementTableAlias();

      // select the "collection columns"
      selectStatementBuilder.appendSelectClauseFragment(
          queryableCollection.selectFragment(
              rhsTableAlias,
              aliases.getCollectionColumnAliases().getSuffix()
          )
      );

      if ( fetch.getCollectionPersister().isOneToMany() ) {
        // if the collection elements are entities, select the entity columns as well
        final OuterJoinLoadable elementPersister = (OuterJoinLoadable) queryableCollection.getElementPersister();
        selectStatementBuilder.appendSelectClauseFragment(
            elementPersister.selectFragment(
                aliases.getElementTableAlias(),
                aliases.getEntityElementColumnAliases().getSuffix()
            )
        );
        final EntityReferenceAliases entityReferenceAliases = new EntityReferenceAliases() {
View Full Code Here

TOP

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

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.