List of usage examples for org.hibernate.dialect Dialect getNullColumnString
public String getNullColumnString()
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(); }