⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 foreignkey.java

📁 用Java实现的23个常用设计模式源代码
💻 JAVA
字号:
//$Id: ForeignKey.java,v 1.6.2.2 2003/11/06 13:43:22 oneovthafew Exp $package net.sf.hibernate.mapping;import java.util.Iterator;import net.sf.hibernate.MappingException;import net.sf.hibernate.dialect.Dialect;/** * A foreign key constraint * @author Gavin King */public class ForeignKey extends Constraint {		//private PrimaryKey referencedPrimaryKey;	private Table referencedTable;	private Class referencedClass;		public String sqlConstraintString(Dialect dialect, String constraintName) {		String[] cols = new String[ getColumnSpan() ];		String[] refcols = new String[ getColumnSpan() ];		int i=0;		Iterator refiter = referencedTable.getPrimaryKey().getColumnIterator();		Iterator iter = getColumnIterator();		while ( iter.hasNext() ) {			cols[i] = ( (Column) iter.next() ).getQuotedName(dialect);			refcols[i] = ( (Column) refiter.next() ).getQuotedName(dialect);			i++;		}		return dialect.getAddForeignKeyConstraintString(			constraintName, cols, referencedTable.getQualifiedName(dialect), refcols		);	}	public Table getReferencedTable() {		return referencedTable;	}		private void appendColumns(StringBuffer buf, Iterator columns) {		while( columns.hasNext() ) {			Column column = (Column) columns.next();			buf.append( column.getName() );			if ( columns.hasNext() ) buf.append(",");		}		}	public void setReferencedTable(Table referencedTable) throws MappingException {		if ( referencedTable.getPrimaryKey().getColumnSpan()!=getColumnSpan() ) {			StringBuffer sb = new StringBuffer();			sb.append("Foreign key (")				.append( getTable().getName() )				.append(" [");			appendColumns( sb, getColumnIterator() );			sb.append("])")				.append(") must have same number of columns as the reference primary key (")				.append( referencedTable.getName() )				.append(" [");			appendColumns( sb, referencedTable.getPrimaryKey().getColumnIterator() );			sb.append("])");			throw new MappingException( sb.toString() );		}				Iterator fkCols = getColumnIterator();		Iterator pkCols = referencedTable.getPrimaryKey().getColumnIterator();		while ( pkCols.hasNext() ) {			( (Column) fkCols.next() ).setLength( ( (Column) pkCols.next() ).getLength() );		}				this.referencedTable = referencedTable;	}		public Class getReferencedClass() {		return referencedClass;	}	public void setReferencedClass(Class referencedClass) {		this.referencedClass = referencedClass;	}		public ForeignKey() {	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -