Package org.hibernate.mapping

Examples of org.hibernate.mapping.Table


            schemaTableListDocFiles.put(schemaName, tableListDocFile);

            Iterator tables = docHelper.getTables(schemaName).iterator();

            while (tables.hasNext() ) {
                Table table = (Table) tables.next();
                if(table.isPhysicalTable()) {
                  String tableFileName = table.getName() + ".html";

                  DocFile tableDocFile = new DocFile(tableFileName, schemaFolder);

                  tableDocFiles.put(table, tableDocFile);
                }
View Full Code Here


    ArrayList script = new ArrayList( 50 );

    Iterator iter = getTableMappings();
    while ( iter.hasNext() ) {
      Table table = (Table) iter.next();
      if ( table.isPhysicalTable() ) {
       
        TableMetadata tableInfo = databaseMetadata.getTableMetadata(
            table.getName(),
            ( table.getSchema() == null ) ? defaultSchema : table.getSchema(),
            ( table.getCatalog() == null ) ? defaultCatalog : table.getCatalog(),
                table.isQuoted()

          );
        if ( tableInfo == null ) {
          script.add(
              table.sqlCreateString(
                  dialect,
                  mapping,
                  defaultCatalog,
                  defaultSchema
                )
            );
        }
        else {
          Iterator subiter = table.sqlAlterStrings(
              dialect,
              mapping,
              tableInfo,
              defaultCatalog,
              defaultSchema
            );
          while ( subiter.hasNext() ) {
            script.add( subiter.next() );
          }
        }

        Iterator comments = table.sqlCommentStrings( dialect, defaultCatalog, defaultSchema );
        while ( comments.hasNext() ) {
          script.add( comments.next() );
        }

      }
    }

    iter = getTableMappings();
    while ( iter.hasNext() ) {
      Table table = (Table) iter.next();
      if ( table.isPhysicalTable() ) {

        TableMetadata tableInfo = databaseMetadata.getTableMetadata(
            table.getName(),
            table.getSchema(),
            table.getCatalog(),
            table.isQuoted()
          );

        if ( dialect.hasAlterTable() ) {
          Iterator subIter = table.getForeignKeyIterator();
          while ( subIter.hasNext() ) {
            ForeignKey fk = (ForeignKey) subIter.next();
            if ( fk.isPhysicalConstraint() ) {
              boolean create = tableInfo == null || (
                  tableInfo.getForeignKeyMetadata( fk ) == null && (
                      //Icky workaround for MySQL bug:
                      !( dialect instanceof MySQLDialect ) ||
                          tableInfo.getIndexMetadata( fk.getName() ) == null
                    )
                );
              if ( create ) {
                script.add(
                    fk.sqlCreateString(
                        dialect,
                        mapping,
                        defaultCatalog,
                        defaultSchema
                      )
                  );
              }
            }
          }
        }
        Iterator subIter = table.getIndexIterator();
        while ( subIter.hasNext() ) {
          final Index index = (Index) subIter.next();
          // Skip if index already exists
          if ( tableInfo != null && StringHelper.isNotEmpty( index.getName() ) ) {
            final IndexMetadata meta = tableInfo.getIndexMetadata( index.getName() );
View Full Code Here

    String defaultCatalog = properties.getProperty( Environment.DEFAULT_CATALOG );
    String defaultSchema = properties.getProperty( Environment.DEFAULT_SCHEMA );
   
    Iterator iter = getTableMappings();
    while ( iter.hasNext() ) {
      Table table = (Table) iter.next();
      if ( table.isPhysicalTable() ) {
       

        TableMetadata tableInfo = databaseMetadata.getTableMetadata(
            table.getName(),
            ( table.getSchema() == null ) ? defaultSchema : table.getSchema(),
            ( table.getCatalog() == null ) ? defaultCatalog : table.getCatalog(),
                table.isQuoted());
        if ( tableInfo == null ) {
          throw new HibernateException( "Missing table: " + table.getName() );
        }
        else {
          table.validateColumns( dialect, mapping, tableInfo );
        }

      }
    }
View Full Code Here

  public boolean excludeForeignKeyAsManytoOne(String keyname, TableIdentifier fromTable, List fromColumns, TableIdentifier referencedTable, List referencedColumns) {
    return !settings.createManyToOneForForeignKey();
  }

  public boolean isForeignKeyCollectionInverse(String name, TableIdentifier foreignKeyTable, List columns, TableIdentifier foreignKeyReferencedTable, List referencedColumns) {
    Table fkTable = getRuntimeInfo().getTable(foreignKeyTable);
    if(fkTable==null) {
      return true; // we don't know better
    }
   
    if(isManyToManyTable(fkTable)) {
           // if the reference column is the first one then we are inverse.
         Column column = fkTable.getColumn(0);
         Column fkColumn = (Column) referencedColumns.get(0);
         if(fkColumn.equals(column)) {
           return true;  
         } else {
           return false;
View Full Code Here

public abstract class RelationalModelDetector extends Detector {

  public void visit(Configuration cfg, IssueCollector collector) {
    for (Iterator iter = cfg.getTableMappings(); iter.hasNext();) {
      Table table = (Table) iter.next();
      this.visit(cfg, table, collector);
    }         
  }
View Full Code Here

  private static void bindTables(List tables, OverrideRepository repository) {
    Iterator iterator = tables.iterator();
   
    while ( iterator.hasNext() ) {
      Element element = (Element) iterator.next();
      Table table = new Table();
      table.setCatalog( element.attributeValue("catalog") );
      table.setSchema( element.attributeValue("schema") );
      table.setName( element.attributeValue("name") );
     
      String wantedClassName = element.attributeValue("class");
     
      Element primaryKey = element.element("primary-key");     
      bindPrimaryKey(primaryKey, table, repository);
View Full Code Here

     
      String constraintName = element.attributeValue("constraint-name");
     
      String foreignTableName = element.attributeValue("foreign-table");
      if(foreignTableName!=null) {
        Table foreignTable = new Table();
        foreignTable.setName(foreignTableName);
        foreignTable.setCatalog(getValue(element.attributeValue( "foreign-catalog"), table.getCatalog()) );
        foreignTable.setSchema(getValue(element.attributeValue( "foreign-schema"), table.getSchema()) );

        List localColumns = new ArrayList();
        List foreignColumns = new ArrayList();
       
        Iterator columnRefs = element.elements("column-ref").iterator();
View Full Code Here

      if(foreignTableName!=null) {
        List localColumns = new ArrayList();
        localColumns.add(column);
        List foreignColumns = new ArrayList();
       
        Table foreignTable = new Table();
        foreignTable.setName(foreignTableName);
        foreignTable.setCatalog(getValue(element.attributeValue( "foreign-catalog"),table.getCatalog()) );
        foreignTable.setSchema(getValue(element.attributeValue( "foreign-schema"), table.getSchema()) );
       
        String foreignColumnName = element.attributeValue("foreign-column");
        if(foreignColumnName!=null) {
          Column foreignColumn = new Column();
          foreignColumn.setName(foreignColumnName);
View Full Code Here

  public Table addTable(String schema,
      String catalog,
      String name) {
   
        String key = Table.qualify(quote(catalog), quote(schema), quote(name));
    Table table = (Table) tables.get(key);
   
    if (table == null) {
      table = new Table();
      table.setAbstract(false);
      table.setName(name);
      table.setSchema(schema);
      table.setCatalog(catalog);
      tables.put(key, table);
     
      String qualifier = StringHelper.qualifier(key);
      List schemaList = (List) qualifiers.get(qualifier);
      if(schemaList==null) {
        schemaList = new ArrayList();
        qualifiers.put(qualifier, schemaList);       
      }
      schemaList.add(table);
    }
    else {
      table.setAbstract(false);
    }
   
    return table;
  }
View Full Code Here

    ArrayList keyColumnReaderTemplates = new ArrayList();
    ArrayList cascadeDeletes = new ArrayList();
    Iterator titer = persistentClass.getTableClosureIterator();
    Iterator kiter = persistentClass.getKeyClosureIterator();
    while ( titer.hasNext() ) {
      Table tab = (Table) titer.next();
      KeyValue key = (KeyValue) kiter.next();
      String tabname = tab.getQualifiedName(
          factory.getDialect(),
          factory.getSettings().getDefaultCatalogName(),
          factory.getSettings().getDefaultSchemaName()
      );
      tables.add(tabname);
      String[] keyCols = new String[idColumnSpan];
      String[] keyColReaders = new String[idColumnSpan];
      String[] keyColReaderTemplates = new String[idColumnSpan];
      Iterator citer = key.getColumnIterator();
      for ( int k=0; k<idColumnSpan; k++ ) {
        Column column = (Column) citer.next();
        keyCols[k] = column.getQuotedName( factory.getDialect() );
        keyColReaders[k] = column.getReadExpr( factory.getDialect() );
        keyColReaderTemplates[k] = column.getTemplate( factory.getDialect(), factory.getSqlFunctionRegistry() );
      }
      keyColumns.add(keyCols);
      keyColumnReaders.add(keyColReaders);
      keyColumnReaderTemplates.add(keyColReaderTemplates);
      cascadeDeletes.add( new Boolean( key.isCascadeDeleteEnabled() && factory.getDialect().supportsCascadeDelete() ) );
    }
    naturalOrderTableNames = ArrayHelper.toStringArray(tables);
    naturalOrderTableKeyColumns = ArrayHelper.to2DStringArray(keyColumns);
    naturalOrderTableKeyColumnReaders = ArrayHelper.to2DStringArray(keyColumnReaders);
    naturalOrderTableKeyColumnReaderTemplates = ArrayHelper.to2DStringArray(keyColumnReaderTemplates);
    naturalOrderCascadeDeleteEnabled = ArrayHelper.toBooleanArray(cascadeDeletes);

    ArrayList subtables = new ArrayList();
    ArrayList isConcretes = new ArrayList();
    keyColumns = new ArrayList();
    titer = persistentClass.getSubclassTableClosureIterator();
    while ( titer.hasNext() ) {
      Table tab = (Table) titer.next();
      isConcretes.add( new Boolean( persistentClass.isClassOrSuperclassTable(tab) ) );
      String tabname = tab.getQualifiedName(
          factory.getDialect(),
          factory.getSettings().getDefaultCatalogName(),
          factory.getSettings().getDefaultSchemaName()
      );
      subtables.add(tabname);
      String[] key = new String[idColumnSpan];
      Iterator citer = tab.getPrimaryKey().getColumnIterator();
      for ( int k=0; k<idColumnSpan; k++ ) {
        key[k] = ( (Column) citer.next() ).getQuotedName( factory.getDialect() );
      }
      keyColumns.add(key);
    }
    subclassTableNameClosure = ArrayHelper.toStringArray(subtables);
    subclassTableKeyColumnClosure = ArrayHelper.to2DStringArray(keyColumns);
    isClassOrSuperclassTable = ArrayHelper.toBooleanArray(isConcretes);

    constraintOrderedTableNames = new String[subclassTableNameClosure.length];
    constraintOrderedKeyColumnNames = new String[subclassTableNameClosure.length][];
    int currentPosition = 0;
    for ( int i = subclassTableNameClosure.length - 1; i >= 0 ; i--, currentPosition++ ) {
      constraintOrderedTableNames[currentPosition] = subclassTableNameClosure[i];
      constraintOrderedKeyColumnNames[currentPosition] = subclassTableKeyColumnClosure[i];
    }

    tableSpan = naturalOrderTableNames.length;
    tableNames = reverse(naturalOrderTableNames);
    tableKeyColumns = reverse(naturalOrderTableKeyColumns);
    tableKeyColumnReaders = reverse(naturalOrderTableKeyColumnReaders);
    tableKeyColumnReaderTemplates = reverse(naturalOrderTableKeyColumnReaderTemplates);
    reverse(subclassTableNameClosure, tableSpan);
    reverse(subclassTableKeyColumnClosure, tableSpan);

    spaces = ArrayHelper.join(
        tableNames,
        ArrayHelper.toStringArray( persistentClass.getSynchronizedTables() )
    );

    // Custom sql
    customSQLInsert = new String[tableSpan];
    customSQLUpdate = new String[tableSpan];
    customSQLDelete = new String[tableSpan];
    insertCallable = new boolean[tableSpan];
    updateCallable = new boolean[tableSpan];
    deleteCallable = new boolean[tableSpan];
    insertResultCheckStyles = new ExecuteUpdateResultCheckStyle[tableSpan];
    updateResultCheckStyles = new ExecuteUpdateResultCheckStyle[tableSpan];
    deleteResultCheckStyles = new ExecuteUpdateResultCheckStyle[tableSpan];

    PersistentClass pc = persistentClass;
    int jk = tableSpan-1;
    while (pc!=null) {
      customSQLInsert[jk] = pc.getCustomSQLInsert();
      insertCallable[jk] = customSQLInsert[jk] != null && pc.isCustomInsertCallable();
      insertResultCheckStyles[jk] = pc.getCustomSQLInsertCheckStyle() == null
                                    ? ExecuteUpdateResultCheckStyle.determineDefault( customSQLInsert[jk], insertCallable[jk] )
                                      : pc.getCustomSQLInsertCheckStyle();
      customSQLUpdate[jk] = pc.getCustomSQLUpdate();
      updateCallable[jk] = customSQLUpdate[jk] != null && pc.isCustomUpdateCallable();
      updateResultCheckStyles[jk] = pc.getCustomSQLUpdateCheckStyle() == null
                                    ? ExecuteUpdateResultCheckStyle.determineDefault( customSQLUpdate[jk], updateCallable[jk] )
                                      : pc.getCustomSQLUpdateCheckStyle();
      customSQLDelete[jk] = pc.getCustomSQLDelete();
      deleteCallable[jk] = customSQLDelete[jk] != null && pc.isCustomDeleteCallable();
      deleteResultCheckStyles[jk] = pc.getCustomSQLDeleteCheckStyle() == null
                                    ? ExecuteUpdateResultCheckStyle.determineDefault( customSQLDelete[jk], deleteCallable[jk] )
                                      : pc.getCustomSQLDeleteCheckStyle();
      jk--;
      pc = pc.getSuperclass();
    }
    if ( jk != -1 ) {
      throw new AssertionFailure( "Tablespan does not match height of joined-subclass hiearchy." );
    }

    // PROPERTIES

    int hydrateSpan = getPropertySpan();
    naturalOrderPropertyTableNumbers = new int[hydrateSpan];
    propertyTableNumbers = new int[hydrateSpan];
    Iterator iter = persistentClass.getPropertyClosureIterator();
    int i=0;
    while( iter.hasNext() ) {
      Property prop = (Property) iter.next();
      String tabname = prop.getValue().getTable().getQualifiedName(
        factory.getDialect(),
        factory.getSettings().getDefaultCatalogName(),
        factory.getSettings().getDefaultSchemaName()
      );
      propertyTableNumbers[i] = getTableId(tabname, tableNames);
      naturalOrderPropertyTableNumbers[i] = getTableId(tabname, naturalOrderTableNames);
      i++;
    }

    // subclass closure properties

    //TODO: code duplication with SingleTableEntityPersister

    ArrayList columnTableNumbers = new ArrayList();
    ArrayList formulaTableNumbers = new ArrayList();
    ArrayList propTableNumbers = new ArrayList();

    iter = persistentClass.getSubclassPropertyClosureIterator();
    while ( iter.hasNext() ) {
      Property prop = (Property) iter.next();
      Table tab = prop.getValue().getTable();
      String tabname = tab.getQualifiedName(
          factory.getDialect(),
          factory.getSettings().getDefaultCatalogName(),
          factory.getSettings().getDefaultSchemaName()
      );
      Integer tabnum = new Integer( getTableId(tabname, subclassTableNameClosure) );
View Full Code Here

TOP

Related Classes of org.hibernate.mapping.Table

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.