Package org.hibernate.sql

Examples of org.hibernate.sql.Delete


  /**
   * Generate the SQL DELETE that deletes all rows
   */
  protected String generateDeleteString() {
   
    Delete delete = new Delete()
        .setTableName( qualifiedTableName )
        .setPrimaryKeyColumnNames( keyColumnNames );
   
    if ( hasWhere ) delete.setWhere( sqlWhereString );
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here


  /**
   * Generate the SQL DELETE that deletes a particular row
   */
  protected String generateDeleteRowString() {
   
    Delete delete = new Delete()
      .setTableName( qualifiedTableName );
   
    if ( hasIdentifier ) {
      delete.setPrimaryKeyColumnNames( new String[]{ identifierColumnName } );
    }
    else if ( hasIndex && !indexContainsFormula ) {
      delete.setPrimaryKeyColumnNames( ArrayHelper.join( keyColumnNames, indexColumnNames ) );
    }
    else {
      delete.setPrimaryKeyColumnNames( ArrayHelper.join( keyColumnNames, elementColumnNames, elementColumnIsInPrimaryKey ) );
    }
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection row " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here

    for ( int i = tableNames.length - 1; i >= 0; i-- ) {
      // TODO : an optimization here would be to consider cascade deletes and not gen those delete statements;
      //      the difficulty is the ordering of the tables here vs the cascade attributes on the persisters ->
      //          the table info gotten here should really be self-contained (i.e., a class representation
      //          defining all the needed attributes), then we could then get an array of those
      final Delete delete = new Delete()
          .setTableName( tableNames[i] )
          .setWhere( "(" + StringHelper.join( ", ", columnNames[i] ) + ") IN (" + idSubselect + ")" );
      if ( getFactory().getSettings().isCommentsEnabled() ) {
        delete.setComment( "bulk delete" );
      }

      deletes[i] = delete.toStatementString();
    }
  }
View Full Code Here

  /**
   * Generate the SQL that deletes a row by id (and version)
   */
  protected String generateDeleteString(int j) {
    Delete delete = new Delete()
        .setTableName( getTableName( j ) )
        .setPrimaryKeyColumnNames( getKeyColumns( j ) );
    if ( j == 0 ) {
      delete.setVersionColumnName( getVersionColumnName() );
    }
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete " + getEntityName() );
    }
    return delete.toStatementString();
  }
View Full Code Here

  private String[] generateSQLDeletStrings(Object[] loadedState) {
    int span = getTableSpan();
    String[] deleteStrings = new String[span];
    for ( int j = span - 1; j >= 0; j-- ) {
      Delete delete = new Delete()
          .setTableName( getTableName( j ) )
          .setPrimaryKeyColumnNames( getKeyColumns( j ) );
      if ( getFactory().getSettings().isCommentsEnabled() ) {
        delete.setComment( "delete " + getEntityName() + " [" + j + "]" );
      }

      boolean[] versionability = getPropertyVersionability();
      Type[] types = getPropertyTypes();
      for ( int i = 0; i < entityMetamodel.getPropertySpan(); i++ ) {
        if ( isPropertyOfTable( i, j ) && versionability[i] ) {
          // this property belongs to the table and it is not specifically
          // excluded from optimistic locking by optimistic-lock="false"
          String[] propertyColumnNames = getPropertyColumnNames( i );
          boolean[] propertyNullness = types[i].toColumnNullness( loadedState[i], getFactory() );
          for ( int k = 0; k < propertyNullness.length; k++ ) {
            if ( propertyNullness[k] ) {
              delete.addWhereFragment( propertyColumnNames[k] + " = ?" );
            }
            else {
              delete.addWhereFragment( propertyColumnNames[k] + " is null" );
            }
          }
        }
      }
      deleteStrings[j] = delete.toStatementString();
    }
    return deleteStrings;
  }
View Full Code Here

  /**
   * Generate the SQL DELETE that deletes all rows
   */
  protected String generateDeleteString() {
   
    Delete delete = new Delete()
        .setTableName( qualifiedTableName )
        .setPrimaryKeyColumnNames( keyColumnNames );
   
    if ( hasWhere ) delete.setWhere( sqlWhereString );
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here

  /**
   * Generate the SQL DELETE that deletes a particular row
   */
  protected String generateDeleteRowString() {
   
    Delete delete = new Delete()
      .setTableName( qualifiedTableName );
   
    if ( hasIdentifier ) {
      delete.setPrimaryKeyColumnNames( new String[]{ identifierColumnName } );
    }
    else if ( hasIndex && !indexContainsFormula ) {
      delete.setPrimaryKeyColumnNames( ArrayHelper.join( keyColumnNames, indexColumnNames ) );
    }
    else {
      delete.setPrimaryKeyColumnNames( ArrayHelper.join( keyColumnNames, elementColumnNames, elementColumnIsInPrimaryKey ) );
    }
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection row " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here

  /**
   * Generate the SQL DELETE that deletes all rows
   */
  protected String generateDeleteString() {
   
    Delete delete = new Delete()
        .setTableName( qualifiedTableName )
        .addPrimaryKeyColumns( keyColumnNames );
   
    if ( hasWhere ) delete.setWhere( sqlWhereString );
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here

  /**
   * Generate the SQL DELETE that deletes a particular row
   */
  protected String generateDeleteRowString() {
   
    Delete delete = new Delete()
      .setTableName( qualifiedTableName );
   
    if ( hasIdentifier ) {
      delete.addPrimaryKeyColumns( new String[]{ identifierColumnName } );
    }
    else if ( hasIndex && !indexContainsFormula ) {
      delete.addPrimaryKeyColumns( ArrayHelper.join( keyColumnNames, indexColumnNames ) );
    }
    else {
      delete.addPrimaryKeyColumns( keyColumnNames );
      delete.addPrimaryKeyColumns( elementColumnNames, elementColumnIsInPrimaryKey, elementColumnWriters );
    }
   
    if ( getFactory().getSettings().isCommentsEnabled() ) {
      delete.setComment( "delete collection row " + getRole() );
    }
   
    return delete.toStatementString();
  }
View Full Code Here

      deletes.add( generateDelete( tableNames[i], columnNames[i], idSubselect, "bulk delete"));
    }
  }
 
  private String generateDelete(String tableName, String[] columnNames, String idSubselect, String comment) {
    final Delete delete = new Delete()
        .setTableName( tableName )
        .setWhere( "(" + StringHelper.join( ", ", columnNames ) + ") IN (" + idSubselect + ")" );
    if ( factory().getSettings().isCommentsEnabled() ) {
      delete.setComment( comment );
    }
    return delete.toStatementString();
  }
View Full Code Here

TOP

Related Classes of org.hibernate.sql.Delete

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.