Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/map
In directory sc8-pr-cvs1:/tmp/cvs-serv22482/hibernate/map
Added Files:
UniqueKey.java
Log Message:
support for multi-column unique constraints via unique-key attribute
--- NEW FILE: UniqueKey.java ---
//$Id: UniqueKey.java,v 1.1 2002/12/26 03:37:01 oneovthafew Exp $
package cirrus.hibernate.map;
import java.util.Iterator;
import cirrus.hibernate.helpers.StringHelper;
import cirrus.hibernate.sql.Dialect;
public class UniqueKey extends Constraint {
public String sqlConstraintString(Dialect d) {
StringBuffer buf = new StringBuffer(" unique (");
Iterator iter = getColumnIterator();
while ( iter.hasNext() ) {
buf.append( ( (Column) iter.next() ).getName() );
if ( iter.hasNext() ) buf.append(", ");
}
return buf.append(")").toString();
}
public String sqlConstraintString(Dialect d, String constraintName) {
StringBuffer buf = new StringBuffer(
d.getAddPrimaryKeyConstraintString(constraintName)
).append('(');
Iterator iter = getColumnIterator();
while ( iter.hasNext() ) {
buf.append( ( (Column) iter.next() ).getName() );
if ( iter.hasNext() ) buf.append(", ");
}
return StringHelper.replace( buf.append(")").toString(), "primary key", "unique" ); //TODO: improve this hack!
}
}
|