Package org.hibernate.sql

Examples of org.hibernate.sql.SelectFragment


    //now render the joins
    JoinFragment jf = createJoin( tableNumbers, drivingAlias );

    //now render the select clause
    SelectFragment selectFragment = createSelect( columnNumbers, formulaNumbers );

    //now tie it all together
    Select select = new Select( getFactory().getDialect() );
    select.setSelectClause( selectFragment.toFragmentString().substring( 2 ) );
    select.setFromClause( from );
    select.setWhereClause( where );
    select.setOuterJoins( jf.toFromFragmentString(), jf.toWhereFragmentString() );
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      select.setComment( "sequential select " + getEntityName() );
View Full Code Here


    if ( keyType.isAssociationType() ) {
      EntityType entityType = (EntityType) keyType;
      Queryable keyEntityPersister = ( Queryable ) sfi().getEntityPersister(
          entityType.getAssociatedEntityName( sfi() )
      );
      SelectFragment fragment = keyEntityPersister.propertySelectFragmentFragment(
          collectionTableAlias(),
          null,
          false
      );
      appendSelectExpressions( fragment, selections, aliasGenerator );
View Full Code Here

    if ( valueType.isAssociationType() ) {
      EntityType valueEntityType = (EntityType) valueType;
      Queryable valueEntityPersister = ( Queryable ) sfi().getEntityPersister(
          valueEntityType.getAssociatedEntityName( sfi() )
      );
      SelectFragment fragment = valueEntityPersister.propertySelectFragmentFragment(
          elementTableAlias(),
          null,
          false
      );
      appendSelectExpressions( fragment, selections, aliasGenerator );
View Full Code Here

  protected abstract Queryable[] getAffectedQueryables();

  protected String generateIdInsertSelect(Queryable persister, String tableAlias, AST whereClause) {
    Select select = new Select( getFactory().getDialect() );
    SelectFragment selectFragment = new SelectFragment()
        .addColumns( tableAlias, persister.getIdentifierColumnNames(), persister.getIdentifierColumnNames() );
    select.setSelectClause( selectFragment.toFragmentString().substring( 2 ) );

    String rootTableName = persister.getTableName();
    String fromJoinFragment = persister.fromJoinFragment( tableAlias, true, false );
    String whereJoinFragment = persister.whereJoinFragment( tableAlias, true, false );
View Full Code Here

        new Alias( suffix ).toAliasString( getDiscriminatorAlias() ) :
        null;
  }

  public String identifierSelectFragment(String name, String suffix) {
    return new SelectFragment()
        .setSuffix( suffix )
        .addColumns( name, getIdentifierColumnNames(), getIdentifierAliases() )
        .toFragmentString()
        .substring( 2 ); //strip leading ", "
  }
View Full Code Here

  public SelectFragment propertySelectFragmentFragment(
      String tableAlias,
      String suffix,
      boolean allProperties) {
    SelectFragment select = new SelectFragment()
        .setSuffix( suffix )
        .setUsedAliases( getIdentifierAliases() );

    int[] columnTableNumbers = getSubclassColumnTableNumberClosure();
    String[] columnAliases = getSubclassColumnAliasClosure();
    String[] columnReaderTemplates = getSubclassColumnReaderTemplateClosure();
    for ( int i = 0; i < getSubclassColumnClosure().length; i++ ) {
      boolean selectable = ( allProperties || !subclassColumnLazyClosure[i] ) &&
        !isSubclassTableSequentialSelect( columnTableNumbers[i] ) &&
        subclassColumnSelectableClosure[i];
      if ( selectable ) {
        String subalias = generateTableAlias( tableAlias, columnTableNumbers[i] );
        select.addColumnTemplate( subalias, columnReaderTemplates[i], columnAliases[i] );
      }
    }

    int[] formulaTableNumbers = getSubclassFormulaTableNumberClosure();
    String[] formulaTemplates = getSubclassFormulaTemplateClosure();
    String[] formulaAliases = getSubclassFormulaAliasClosure();
    for ( int i = 0; i < getSubclassFormulaTemplateClosure().length; i++ ) {
      boolean selectable = ( allProperties || !subclassFormulaLazyClosure[i] )
        && !isSubclassTableSequentialSelect( formulaTableNumbers[i] );
      if ( selectable ) {
        String subalias = generateTableAlias( tableAlias, formulaTableNumbers[i] );
        select.addFormula( subalias, formulaTemplates[i], formulaAliases[i] );
      }
    }

    if ( entityMetamodel.hasSubclasses() ) {
      addDiscriminatorToSelect( select, tableAlias, suffix );
    }

    if ( hasRowId() ) {
      select.addColumn( tableAlias, rowIdName, ROWID_ALIAS );
    }

    return select;
  }
View Full Code Here

  }

  protected String concretePropertySelectFragment(String alias, InclusionChecker inclusionChecker) {
    int propertyCount = getPropertyNames().length;
    int[] propertyTableNumbers = getPropertyTableNumbersInSelect();
    SelectFragment frag = new SelectFragment();
    for ( int i = 0; i < propertyCount; i++ ) {
      if ( inclusionChecker.includeProperty( i ) ) {
        frag.addColumnTemplates(
            generateTableAlias( alias, propertyTableNumbers[i] ),
            propertyColumnReaderTemplates[i],
            propertyColumnAliases[i]
        );
        frag.addFormulas(
            generateTableAlias( alias, propertyTableNumbers[i] ),
            propertyColumnFormulaTemplates[i],
            propertyColumnAliases[i]
        );
      }
    }
    return frag.toFragmentString();
  }
View Full Code Here

  }

  protected SelectFragment createSelect(final int[] subclassColumnNumbers,
                      final int[] subclassFormulaNumbers) {

    SelectFragment selectFragment = new SelectFragment();

    int[] columnTableNumbers = getSubclassColumnTableNumberClosure();
    String[] columnAliases = getSubclassColumnAliasClosure();
    String[] columnReaderTemplates = getSubclassColumnReaderTemplateClosure();
    for ( int i = 0; i < subclassColumnNumbers.length; i++ ) {
      int columnNumber = subclassColumnNumbers[i];
      if ( subclassColumnSelectableClosure[columnNumber] ) {
        final String subalias = generateTableAlias( getRootAlias(), columnTableNumbers[columnNumber] );
        selectFragment.addColumnTemplate( subalias, columnReaderTemplates[columnNumber], columnAliases[columnNumber] );
      }
    }

    int[] formulaTableNumbers = getSubclassFormulaTableNumberClosure();
    String[] formulaTemplates = getSubclassFormulaTemplateClosure();
    String[] formulaAliases = getSubclassFormulaAliasClosure();
    for ( int i = 0; i < subclassFormulaNumbers.length; i++ ) {
      int formulaNumber = subclassFormulaNumbers[i];
      final String subalias = generateTableAlias( getRootAlias(), formulaTableNumbers[formulaNumber] );
      selectFragment.addFormula( subalias, formulaTemplates[formulaNumber], formulaAliases[formulaNumber] );
    }

    return selectFragment;
  }
View Full Code Here

    //now render the joins
    JoinFragment jf = createJoin( tableNumbers, drivingAlias );

    //now render the select clause
    SelectFragment selectFragment = createSelect( columnNumbers, formulaNumbers );

    //now tie it all together
    Select select = new Select( getFactory().getDialect() );
    select.setSelectClause( selectFragment.toFragmentString().substring( 2 ) );
    select.setFromClause( from );
    select.setWhereClause( where );
    select.setOuterJoins( jf.toFromFragmentString(), jf.toWhereFragmentString() );
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      select.setComment( "sequential select " + getEntityName() );
View Full Code Here

  private String manyToManySelectFragment(
          Joinable rhs,
          String rhsAlias,
          String lhsAlias,
          String collectionSuffix) {
    SelectFragment frag = generateSelectFragment( lhsAlias, collectionSuffix );

    String[] elementColumnNames = rhs.getKeyColumnNames();
    frag.addColumns( rhsAlias, elementColumnNames, elementColumnAliases );
    appendIndexColumns( frag, lhsAlias );
    appendIdentifierColumns( frag, lhsAlias );

    return frag.toFragmentString()
        .substring( 2 ); //strip leading ','
  }
View Full Code Here

TOP

Related Classes of org.hibernate.sql.SelectFragment

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.