diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java index 25f2b450b5..636b8ce13e 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/StandardTableExporter.java @@ -17,7 +17,9 @@ import org.hibernate.boot.model.relational.QualifiedNameParser; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; import org.hibernate.mapping.Column; +import org.hibernate.mapping.Constraint; import org.hibernate.mapping.Table; +import org.hibernate.mapping.UniqueKey; import org.hibernate.tool.schema.spi.Exporter; /** @@ -105,6 +107,16 @@ public class StandardTableExporter implements Exporter { } + if ( col.isUnique() ) { + String keyName = Constraint.generateName( "UK_", table, col ); + UniqueKey uk = table.getOrCreateUniqueKey( keyName ); + uk.addColumn( col ); + buf.append( + dialect.getUniqueDelegate() + .getColumnDefinitionUniquenessFragment( col ) + ); + } + if ( col.getCheckConstraint() != null && dialect.supportsColumnCheck() ) { buf.append( " check (" ) .append( col.getCheckConstraint() )