Example usage for org.hibernate.mapping Table getIndexIterator

List of usage examples for org.hibernate.mapping Table getIndexIterator

Introduction

In this page you can find the example usage for org.hibernate.mapping Table getIndexIterator.

Prototype

public Iterator<Index> getIndexIterator() 

Source Link

Usage

From source file:com.tomitribe.reveng.codegen.FreemarkerObject.java

License:Apache License

public String annotate(final BasicPOJOClass pojo, final Object pObj, final Object rootObj,
        final Object toolObj) {
    // public String annotate(final Object pojo, final Property p, final
    // RootClass root, final Cfg2HbmTool tool) {

    if (BasicPOJOClass.class.isInstance(pojo)) {

    } else {// w w w.ja  va 2  s. c  om
        // System.out.println(ob.class.getName());
    }

    RootClass root = null;
    try {
        root = (RootClass) rootObj;
    } catch (final Exception e) {
        // TODO Auto-generated catch block
        // e.printStackTrace();
        return "";
    }

    final Property p = (Property) pObj;
    final Cfg2HbmTool tool = (Cfg2HbmTool) toolObj;

    final Table table = root.getTable();

    Iterator it = table.getColumnIterator();

    Column column = null;
    Column c;
    String name;
    while (it.hasNext()) {
        c = (Column) it.next();

        name = c.getName().replace("_", "").toLowerCase();

        if (name.equals(p.getName().toLowerCase())) {
            column = c;
            break;
        }
    }

    if (null != column) {

        System.out.print("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - ");

        it = table.getIndexIterator();

        org.hibernate.mapping.Index index;
        while (it.hasNext()) {

            final Object next = it.next();

            if (org.hibernate.mapping.Index.class.isInstance(next)) {

                index = org.hibernate.mapping.Index.class.cast(next);

                if (index.containsColumn(column)) {
                    System.out.print(index.getName());

                    return String.format("\n@Index(name = \"%1$s\", columnNames = {\"%2$s\"})",
                            index.getName().toLowerCase(), column.getName());
                }
            }
        }

        System.out.println();
    } else {
        System.out.println("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - "
                + p.getNodeName() + " - " + p.getPropertyAccessorName());
    }

    return "";
}

From source file:com.vecna.dbDiff.hibernate.HibernateMappingsConverter.java

License:Apache License

/**
 * Convert a Hibernate table model to the DbDiff table model.
 * @param mappedTable hibernate table.//w  w w. j  a va 2s.  c  o  m
 * @return DbDiff table.
 */
private RelationalTable convertTable(org.hibernate.mapping.Table mappedTable) {
    RelationalTable table = new RelationalTable(m_catalogSchema, getTableName(mappedTable));

    List<Column> columns = new ArrayList<>();
    List<RelationalIndex> indices = new ArrayList<>();

    @SuppressWarnings("unchecked")
    Iterator<org.hibernate.mapping.Column> mappedColumns = mappedTable.getColumnIterator();
    int idx = 1;
    while (mappedColumns.hasNext()) {
        org.hibernate.mapping.Column mappedColumn = mappedColumns.next();
        Column column = convertColumn(mappedColumn, mappedTable, idx++);
        columns.add(column);
        if (mappedColumn.isUnique()) {
            indices.add(getUniqueIndex(table, column));
        }
    }

    table.setColumns(columns);

    Set<ForeignKey> fkeys = new HashSet<>();
    @SuppressWarnings("unchecked")
    Iterator<org.hibernate.mapping.ForeignKey> mappedKeys = mappedTable.getForeignKeyIterator();
    while (mappedKeys.hasNext()) {
        convertForeignKey(mappedKeys.next(), fkeys);
    }

    table.setFks(fkeys);

    @SuppressWarnings("unchecked")
    Iterator<Index> mappedIndices = mappedTable.getIndexIterator();

    while (mappedIndices.hasNext()) {
        indices.add(convertIndex(mappedIndices.next(), table));
    }

    @SuppressWarnings("unchecked")
    Iterator<UniqueKey> mappedUniqueKeys = mappedTable.getUniqueKeyIterator();
    while (mappedUniqueKeys.hasNext()) {
        indices.add(convertIndex(mappedUniqueKeys.next(), table));
    }

    if (mappedTable.getPrimaryKey() != null) {
        indices.add(convertIndex(mappedTable.getPrimaryKey(), table));
        List<String> pkColumnNames = new ArrayList<>();
        @SuppressWarnings("unchecked")
        Iterator<org.hibernate.mapping.Column> pkColumns = mappedTable.getPrimaryKey().getColumnIterator();
        while (pkColumns.hasNext()) {
            pkColumnNames.add(getColumnName(pkColumns.next()));
        }
        table.setPkColumns(pkColumnNames);
    }

    table.setIndices(indices);

    return table;
}

From source file:com.xpn.xwiki.store.migration.hibernate.R40000XWIKI6990DataMigration.java

License:Open Source License

/**
 * Create liquibase change log to modify the column type to BIGINT.
 * If the database is MSSQL, drop PK constraints and indexes during operation.
 * // w  w w . j  a v  a  2 s  .  c o m
 * @param sb append the result into this string builder
 * @param table the table name
 * @param column the column name
 */
private void appendDataTypeChangeLog(StringBuilder sb, Table table, String column) {
    String tableName = table.getName();

    sb.append("  <changeSet id=\"R").append(this.getVersion().getVersion()).append('-')
            .append(Util.getHash(String.format("modifyDataType-%s-%s", table, column)))
            .append("\" author=\"xwiki\">\n").append("    <comment>Upgrade identifier [").append(column)
            .append("] from table [").append(tableName).append("] to BIGINT type</comment >\n");

    // MS-SQL require that primary key constraints and all indexes related to the changed column be dropped before
    // changing the column type.
    if (this.isMSSQL) {
        if (table.hasPrimaryKey()) {
            appendDropPrimaryKey(sb, table);
        }

        // We drop all index related to the table, this is overkill, but does not hurt
        for (@SuppressWarnings("unchecked")
        Iterator<Index> it = table.getIndexIterator(); it.hasNext();) {
            Index index = it.next();
            appendDropIndex(sb, index);
        }
    }

    appendModifyColumn(sb, tableName, column);

    // Add back dropped PK constraints and indexes for MS-SQL
    if (this.isMSSQL) {
        if (table.hasPrimaryKey()) {
            appendAddPrimaryKey(sb, table);
        }

        for (@SuppressWarnings("unchecked")
        Iterator<Index> it = table.getIndexIterator(); it.hasNext();) {
            Index index = it.next();
            appendAddIndex(sb, index);
        }
    }

    sb.append("  </changeSet>\n");
    this.logCount++;
}

From source file:org.apereo.portal.tools.dbloader.HibernateDbLoader.java

License:Apache License

/** Generate create scripts and add them to the script list */
@SuppressWarnings("unchecked")
protected List<String> createScript(Collection<Table> tables, Dialect dialect, Mapping mapping,
        String defaultCatalog, String defaultSchema) {
    final List<String> script = new ArrayList<String>(tables.size() * 2);

    for (final Table table : tables) {
        if (table.isPhysicalTable()) {
            script.add(table.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
        }/*from  ww w.ja  v a2s.  c o  m*/
    }

    for (final Table table : tables) {
        if (table.isPhysicalTable()) {
            if (!dialect.supportsUniqueConstraintInCreateAlterTable()) {
                for (final Iterator<UniqueKey> subIter = table.getUniqueKeyIterator(); subIter.hasNext();) {
                    final UniqueKey uk = subIter.next();
                    final String constraintString = uk.sqlCreateString(dialect, mapping, defaultCatalog,
                            defaultSchema);
                    if (constraintString != null) {
                        script.add(constraintString);
                    }
                }
            }

            for (final Iterator<Index> subIter = table.getIndexIterator(); subIter.hasNext();) {
                final Index index = subIter.next();
                script.add(index.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
            }

            if (dialect.hasAlterTable()) {
                for (final Iterator<ForeignKey> subIter = table.getForeignKeyIterator(); subIter.hasNext();) {
                    final ForeignKey fk = subIter.next();
                    if (fk.isPhysicalConstraint()) {
                        script.add(fk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
                    }
                }
            }
        }
    }

    return script;
}

From source file:org.beangle.orm.hibernate.tool.DdlGenerator.java

License:Open Source License

@SuppressWarnings("unchecked")
private void generateTableSql(Table table) {
    if (!table.isPhysicalTable())
        return;/*from  w w  w .ja  v  a 2 s .  co  m*/
    Iterator<String> commentIter = table.sqlCommentStrings(dialect, defaultCatalog, defaultSchema);
    while (commentIter.hasNext()) {
        comments.add(commentIter.next());
    }

    if (processed.contains(table))
        return;
    processed.add(table);
    tables.add(table.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));

    Iterator<UniqueKey> subIter = table.getUniqueKeyIterator();
    while (subIter.hasNext()) {
        UniqueKey uk = subIter.next();
        String constraintString = uk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema);
        if (constraintString != null)
            constraints.add(constraintString);
    }

    Iterator<Index> idxIter = table.getIndexIterator();
    while (idxIter.hasNext()) {
        final Index index = idxIter.next();
        indexes.add(index.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
    }

    if (dialect.hasAlterTable()) {
        Iterator<ForeignKey> fkIter = table.getForeignKeyIterator();
        while (fkIter.hasNext()) {
            ForeignKey fk = fkIter.next();
            if (fk.isPhysicalConstraint()) {
                constraints.add(fk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema));
            }
        }
    }
}

From source file:org.codehaus.mojo.hibernate3.exporter.CustomHbm2DDLExporterMojo.java

License:Open Source License

private void processTableIndexNames(Table table) {
    if (table.isPhysicalTable()) {
        @SuppressWarnings("unchecked")
        Iterator<Index> subIter = table.getIndexIterator();
        while (subIter.hasNext()) {
            // for each index that has no name, generate a unique name
            Index index = subIter.next();
            if (index.getName().startsWith(GENERATE_INDEX_NAME_PREFIX)) {
                index.setName(gegenerateIndexName(table, index));
            }//from  w  w w . ja  v a  2  s. co  m
        }
    }
}