Package org.hibernate.mapping
Class Constraint
- java.lang.Object
-
- org.hibernate.mapping.Constraint
-
- All Implemented Interfaces:
java.io.Serializable,Exportable,RelationalModel
- Direct Known Subclasses:
ForeignKey,PrimaryKey,UniqueKey
public abstract class Constraint extends java.lang.Object implements RelationalModel, Exportable, java.io.Serializable
A relational constraint.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Constraint()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddColumn(Column column)voidaddColumns(java.util.Iterator columnIterator)java.util.Iterator<Column>columnIterator()Deprecated.(Since 6.0) usegetColumnIterator()instead.booleancontainsColumn(Column column)abstract java.lang.StringgeneratedConstraintNamePrefix()static java.lang.StringgenerateName(java.lang.String prefix, Table table, java.util.List<Column> columns)Helper method forgenerateName(String, Table, Column...).static java.lang.StringgenerateName(java.lang.String prefix, Table table, Column... columns)If a constraint is not explicitly named, this is called to generate a unique hash using the table and column names.ColumngetColumn(int i)java.util.Iterator<Column>getColumnIterator()java.util.List<Column>getColumns()intgetColumnSpan()java.lang.StringgetName()TablegetTable()static java.lang.StringhashedName(java.lang.String s)Hash a constraint name using MD5.booleanisGenerated(Dialect dialect)voidsetName(java.lang.String name)voidsetTable(Table table)abstract java.lang.StringsqlConstraintString(SqlStringGenerationContext context, java.lang.String constraintName, java.lang.String defaultCatalog, java.lang.String defaultSchema)java.lang.StringsqlCreateString(Mapping p, SqlStringGenerationContext context, java.lang.String defaultCatalog, java.lang.String defaultSchema)java.lang.StringsqlDropString(SqlStringGenerationContext context, java.lang.String defaultCatalog, java.lang.String defaultSchema)java.lang.StringtoString()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.hibernate.boot.model.relational.Exportable
getExportIdentifier
-
Methods inherited from interface org.hibernate.mapping.RelationalModel
sqlCreateString, sqlDropString
-
-
-
-
Method Detail
-
getName
public java.lang.String getName()
-
setName
public void setName(java.lang.String name)
-
generateName
public static java.lang.String generateName(java.lang.String prefix, Table table, Column... columns)If a constraint is not explicitly named, this is called to generate a unique hash using the table and column names. Static so the name can be generated prior to creating the Constraint. They're cached, keyed by name, in multiple locations.- Returns:
- String The generated name
-
generateName
public static java.lang.String generateName(java.lang.String prefix, Table table, java.util.List<Column> columns)Helper method forgenerateName(String, Table, Column...).- Returns:
- String The generated name
-
hashedName
public static java.lang.String hashedName(java.lang.String s)
Hash a constraint name using MD5. Convert the MD5 digest to base 35 (full alphanumeric), guaranteeing that the length of the name will always be smaller than the 30 character identifier restriction enforced by a few dialects.- Parameters:
s- The name to be hashed.- Returns:
- String The hashed name.
-
addColumn
public void addColumn(Column column)
-
addColumns
public void addColumns(java.util.Iterator columnIterator)
-
containsColumn
public boolean containsColumn(Column column)
- Returns:
- true if this constraint already contains a column with same name.
-
getColumnSpan
public int getColumnSpan()
-
getColumn
public Column getColumn(int i)
-
getColumnIterator
public java.util.Iterator<Column> getColumnIterator()
-
columnIterator
@Deprecated public java.util.Iterator<Column> columnIterator()
Deprecated.(Since 6.0) usegetColumnIterator()instead.This is a duplicate method, that has been removed in v.6.0.getColumnIterator()is the one that will stay.
-
getTable
public Table getTable()
-
setTable
public void setTable(Table table)
-
isGenerated
public boolean isGenerated(Dialect dialect)
-
sqlDropString
public java.lang.String sqlDropString(SqlStringGenerationContext context, java.lang.String defaultCatalog, java.lang.String defaultSchema)
- Specified by:
sqlDropStringin interfaceRelationalModel
-
sqlCreateString
public java.lang.String sqlCreateString(Mapping p, SqlStringGenerationContext context, java.lang.String defaultCatalog, java.lang.String defaultSchema)
- Specified by:
sqlCreateStringin interfaceRelationalModel
-
getColumns
public java.util.List<Column> getColumns()
-
sqlConstraintString
public abstract java.lang.String sqlConstraintString(SqlStringGenerationContext context, java.lang.String constraintName, java.lang.String defaultCatalog, java.lang.String defaultSchema)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
generatedConstraintNamePrefix
public abstract java.lang.String generatedConstraintNamePrefix()
- Returns:
- String The prefix to use in generated constraint names. Examples: "UK_", "FK_", and "PK_".
-
-