Example usage for org.hibernate.dialect Dialect getNullColumnString

List of usage examples for org.hibernate.dialect Dialect getNullColumnString

Introduction

In this page you can find the example usage for org.hibernate.dialect Dialect getNullColumnString.

Prototype

public String getNullColumnString() 

Source Link

Document

The keyword used to specify a nullable column.

Usage

From source file:com.amalto.core.storage.hibernate.mapping.MDMDenormalizedTable.java

License:Open Source License

@Override
public Iterator sqlAlterStrings(Dialect dialect, Mapping p, TableMetadata tableInfo, String defaultCatalog,
        String defaultSchema) throws HibernateException {

    StringBuilder root = new StringBuilder("alter table ")
            .append(getQualifiedName(dialect, defaultCatalog, defaultSchema)).append(' ');

    Iterator iter = getColumnIterator();
    List results = new ArrayList();

    while (iter.hasNext()) {
        Column column = (Column) iter.next();

        ColumnMetadata columnInfo = tableInfo.getColumnMetadata(column.getName());

        if (columnInfo == null) {
            // the column doesnt exist at all.
            StringBuilder alter = new StringBuilder(root.toString()).append(dialect.getAddColumnString())
                    .append(' ').append(column.getQuotedName(dialect)).append(' ')
                    .append(column.getSqlType(dialect, p));

            String defaultValue = column.getDefaultValue();
            if (defaultValue != null) {
                alter.append(" default ").append(defaultValue);
            }/*from   w  w w  .j  av  a  2s.co  m*/

            if (column.isNullable()) {
                alter.append(dialect.getNullColumnString());
            } else {
                alter.append(" not null");
            }

            if (column.isUnique()) {
                String keyName = Constraint.generateName("UK_", this, column);
                UniqueKey uk = getOrCreateUniqueKey(keyName);
                uk.addColumn(column);
                alter.append(dialect.getUniqueDelegate().getColumnDefinitionUniquenessFragment(column));
            }

            if (column.hasCheckConstraint() && dialect.supportsColumnCheck()) {
                alter.append(" check(").append(column.getCheckConstraint()).append(")");
            }

            String columnComment = column.getComment();
            if (columnComment != null) {
                alter.append(dialect.getColumnComment(columnComment));
            }

            alter.append(dialect.getAddColumnSuffixString());

            results.add(alter.toString());
        } else if (MDMTableUtils.isAlterColumnField(column, columnInfo, dialect)) {
            StringBuilder alter = new StringBuilder(root.toString());

            if (dialect instanceof SQLServerDialect || dialect instanceof PostgreSQLDialect) {
                alter.append(" ").append("alter COLUMN").append(" ");
            } else {
                alter.append(" ").append("modify").append(" ");
            }
            alter.append(" ").append(column.getQuotedName(dialect)).append(" ");

            if (dialect instanceof PostgreSQLDialect) {
                alter.append("TYPE").append(" ");
            }

            alter.append(column.getSqlType(dialect, p));

            LOGGER.debug(alter.toString());
            results.add(alter.toString());
        }
    }
    return results.iterator();
}

From source file:com.amalto.core.storage.hibernate.mapping.MDMTable.java

License:Open Source License

@Override
public Iterator sqlAlterStrings(Dialect dialect, Mapping p, TableMetadata tableInfo, String defaultCatalog,
        String defaultSchema) throws HibernateException {

    StringBuilder root = new StringBuilder("alter table ")
            .append(getQualifiedName(dialect, defaultCatalog, defaultSchema)).append(' ');

    Iterator iter = getColumnIterator();
    List results = new ArrayList();

    while (iter.hasNext()) {
        Column column = (Column) iter.next();

        ColumnMetadata columnInfo = tableInfo.getColumnMetadata(column.getName());

        if (columnInfo == null) {
            // the column doesnt exist at all.
            StringBuilder alter = new StringBuilder(root.toString()).append(dialect.getAddColumnString())
                    .append(' ').append(column.getQuotedName(dialect)).append(' ')
                    .append(column.getSqlType(dialect, p));

            String defaultValue = column.getDefaultValue();
            if (defaultValue != null) {
                alter.append(" default ").append(defaultValue);
            }/*from  w w w.j ava  2 s .c o m*/

            if (column.isNullable()) {
                alter.append(dialect.getNullColumnString());
            } else {
                alter.append(" not null");
            }

            if (column.isUnique()) {
                String keyName = Constraint.generateName("UK_", this, column);
                UniqueKey uk = getOrCreateUniqueKey(keyName);
                uk.addColumn(column);
                alter.append(dialect.getUniqueDelegate().getColumnDefinitionUniquenessFragment(column));
            }

            if (column.hasCheckConstraint() && dialect.supportsColumnCheck()) {
                alter.append(" check(").append(column.getCheckConstraint()).append(")");
            }

            String columnComment = column.getComment();
            if (columnComment != null) {
                alter.append(dialect.getColumnComment(columnComment));
            }

            alter.append(dialect.getAddColumnSuffixString());

            results.add(alter.toString());
        } else if (MDMTableUtils.isAlterColumnField(column, columnInfo, dialect)) {
            StringBuilder alter = new StringBuilder(root.toString());

            if (dialect instanceof SQLServerDialect || dialect instanceof PostgreSQLDialect) {
                alter.append(" ").append("alter COLUMN").append(" ");
            } else {
                alter.append(" ").append("modify").append(" ");
            }
            alter.append(" ").append(column.getQuotedName(dialect)).append(" ");

            if (dialect instanceof PostgreSQLDialect) {
                alter.append("TYPE").append(" ");
            }

            alter.append(column.getSqlType(dialect, p));

            String defaultValue = column.getDefaultValue();
            if (defaultValue != null) {
                alter.append(" default ").append(defaultValue);
            }

            if (column.isNullable()) {
                alter.append(dialect.getNullColumnString());
            } else {
                alter.append(" not null");
            }

            if (column.isUnique()) {
                String keyName = Constraint.generateName("UK_", this, column);
                UniqueKey uk = getOrCreateUniqueKey(keyName);
                uk.addColumn(column);
                alter.append(dialect.getUniqueDelegate().getColumnDefinitionUniquenessFragment(column));
            }

            if (column.hasCheckConstraint() && dialect.supportsColumnCheck()) {
                alter.append(" check(").append(column.getCheckConstraint()).append(")");
            }

            String columnComment = column.getComment();
            if (columnComment != null) {
                alter.append(dialect.getColumnComment(columnComment));
            }

            alter.append(dialect.getAddColumnSuffixString());

            LOGGER.debug(alter.toString());
            results.add(alter.toString());
        }

    }
    return results.iterator();
}

From source file:corner.migration.services.impl.fragment.AbstractMigrateFragment.java

License:Apache License

/**
 * ?SQL/*w ww  . j  a  v a  2  s .c o m*/
 * @param col 
 * @return SQL 
 * @see Table#sqlCreateString(Dialect, Mapping, String, String)
 */
protected String getSQLType(Column col) {
    //      boolean identityColumn = idValue != null && idValue.isIdentityColumn( dialect );
    boolean identityColumn = false;
    StringBuffer buf = new StringBuffer();
    Dialect dialect = getDialect();
    Mapping p = this.getSessionFactory();
    buf.append(col.getQuotedName(dialect)).append(' ');

    String pkname = "id";
    if (identityColumn && col.getQuotedName(dialect).equals(pkname)) {
        // to support dialects that have their own identity data type
        if (dialect.hasDataTypeInIdentityColumn()) {
            buf.append(col.getSqlType(dialect, p));
        }
        buf.append(' ').append(dialect.getIdentityColumnString(col.getSqlTypeCode(p)));
    } else {

        buf.append(col.getSqlType(dialect, p));

        String defaultValue = col.getDefaultValue();
        if (defaultValue != null) {
            buf.append(" default ").append(defaultValue);
        }

        if (col.isNullable()) {
            buf.append(dialect.getNullColumnString());
        } else {
            buf.append(" not null");
        }

    }

    boolean useUniqueConstraint = col.isUnique() && (!col.isNullable() || dialect.supportsNotNullUnique());
    if (useUniqueConstraint) {
        if (dialect.supportsUnique()) {
            buf.append(" unique");
        } else {
            //               UniqueKey uk = getOrCreateUniqueKey( col.getQuotedName( dialect ) + '_' );
            //               uk.addColumn( col );
        }
    }

    if (col.hasCheckConstraint() && dialect.supportsColumnCheck()) {
        buf.append(" check (").append(col.getCheckConstraint()).append(")");
    }

    String columnComment = col.getComment();
    if (columnComment != null) {
        buf.append(dialect.getColumnComment(columnComment));
    }
    return buf.toString();
}

From source file:org.nuxeo.ecm.directory.sql.repository.Table.java

License:Open Source License

/**
 * Computes the SQL statement to create the table.
 *
 * @param dialect the dialect./*from  w  ww  .  jav a2  s .  c om*/
 * @return the SQL create string.
 */
public String getCreateSql(Dialect dialect) {
    StringBuilder buf = new StringBuilder();
    char openQuote = dialect.openQuote();
    char closeQuote = dialect.closeQuote();

    buf.append("create table");
    buf.append(' ');
    buf.append(openQuote);
    buf.append(name);
    buf.append(closeQuote);
    buf.append(" (");

    boolean first = true;
    for (Column column : columns) {
        if (first) {
            first = false;
        } else {
            buf.append(", ");
        }
        buf.append(openQuote);
        buf.append(column.getName());
        buf.append(closeQuote);
        buf.append(' ');
        if (column.isIdentity()) {
            if (dialect.hasDataTypeInIdentityColumn()) {
                buf.append(column.getSqlTypeString(dialect));
                buf.append(' ');
            }
            buf.append(dialect.getIdentityColumnString(column.getSqlType()));
        } else {
            buf.append(column.getSqlTypeString(dialect));
            String defaultValue = column.getDefaultValue();
            if (defaultValue != null) {
                buf.append(" default ");
                buf.append(defaultValue);
            }
            if (column.isNullable()) {
                buf.append(dialect.getNullColumnString());
            } else {
                buf.append(" not null");
            }
        }
        // unique
        // check
    }
    // unique
    // check
    buf.append(')');
    buf.append(dialect.getTableTypeString());
    return buf.toString();
}

From source file:org.nuxeo.ecm.platform.tag.sql.Table.java

License:Open Source License

/**
 * Computes the SQL statement to create the table.
 *
 * @param dialect the dialect.//from  w  w w  .ja  va 2s  .  c o m
 * @return the SQL create string.
 */
public String getCreateSql(Dialect dialect) {
    StringBuilder buf = new StringBuilder();

    buf.append("create table");
    buf.append(' ');
    buf.append(name);
    buf.append(" (");

    boolean first = true;
    for (Column column : columns) {
        if (first) {
            first = false;
        } else {
            buf.append(", ");
        }
        buf.append(column.getName());
        buf.append(' ');
        buf.append(column.getSqlTypeString(dialect));
        String defaultValue = column.getDefaultValue();
        if (defaultValue != null) {
            buf.append(" default ");
            buf.append(defaultValue);
        }
        if (column.isNullable()) {
            buf.append(dialect.getNullColumnString());
        } else {
            buf.append(" not null");
        }
    }
    buf.append(')');
    buf.append(dialect.getTableTypeString());
    return buf.toString();
}