@Override public List<Identifier> getReferencedColumnNames() { if ( referencedColumnNames == null ) { referencedColumnNames = extractColumnNames( fk.getReferencedColumns() ); } return referencedColumnNames; }
public String toString() { if ( !isReferenceToPrimaryKey() ) { return getClass().getName() + '(' + getTable().getName() + getColumns() + " ref-columns:" + '(' + getReferencedColumns() + ") as " + getName() + ")"; } else { return super.toString(); } }
public boolean matches(ForeignKey fk) { if ( refTable.equalsIgnoreCase( fk.getReferencedTable().getName() ) ) { if ( fk.getColumnSpan() == references.size() ) { List fkRefs; if ( fk.isReferenceToPrimaryKey() ) { fkRefs = fk.getReferencedTable().getPrimaryKey().getColumns(); } else { fkRefs = fk.getReferencedColumns(); } for ( int i = 0; i < fk.getColumnSpan(); i++ ) { Column column = fk.getColumn( i ); Column ref = ( Column ) fkRefs.get( i ); if ( !hasReference( column, ref ) ) { return false; } } return true; } } return false; }
@Override public void createForeignKeys() { includedTable.createForeignKeys(); Iterator iter = includedTable.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = (ForeignKey) iter.next(); createForeignKey( Constraint.generateName( fk.generatedConstraintNamePrefix(), this, fk.getColumns() ), fk.getColumns(), fk.getReferencedEntityName(), fk.getKeyDefinition(), fk.getReferencedColumns() ); } }
if ( numberOfColumns != foreignKey.getReferencedColumns().size() ) { throw new AssertionFailure( String.format( COLUMN_MISMATCH_MSG, numberOfColumns, foreignKey.getReferencedColumns().size(), foreignKey.getName(), foreignKey.getTable().getName(), targetItr = foreignKey.getReferencedColumns().iterator();
public String toString() { return String.format( Locale.ROOT, "Boot-model ForeignKey[ (%s) => (%s) ]", getColumns(), getReferencedColumns() ); }
public String toString() { if(!isReferenceToPrimaryKey() ) { StringBuffer result = new StringBuffer(getClass().getName() + '(' + getTable().getName() + getColumns() ); result.append( " ref-columns:" + '(' + getReferencedColumns() ); result.append( ") as " + getName() ); return result.toString(); } else { return super.toString(); } } }
public String toString() { if(!isReferenceToPrimaryKey() ) { StringBuffer result = new StringBuffer(getClass().getName() + '(' + getTable().getName() + getColumns() ); result.append( " ref-columns:" + '(' + getReferencedColumns() ); result.append( ") as " + getName() ); return result.toString(); } else { return super.toString(); } } }
public String toString() { if(!isReferenceToPrimaryKey() ) { StringBuffer result = new StringBuffer(getClass().getName() + '(' + getTable().getName() + getColumns() ); result.append( " ref-columns:" + '(' + getReferencedColumns() ); result.append( ") as " + getName() ); return result.toString(); } else { return super.toString(); } } }
public boolean matches(ForeignKey fk) { if ( refTable.equalsIgnoreCase( fk.getReferencedTable().getName() ) ) { if ( fk.getColumnSpan() == references.size() ) { List fkRefs; if ( fk.isReferenceToPrimaryKey() ) { fkRefs = fk.getReferencedTable().getPrimaryKey().getColumns(); } else { fkRefs = fk.getReferencedColumns(); } for ( int i = 0; i < fk.getColumnSpan(); i++ ) { Column column = fk.getColumn( i ); Column ref = ( Column ) fkRefs.get( i ); if ( !hasReference( column, ref ) ) { return false; } } return true; } } return false; }
public boolean matches(ForeignKey fk) { if ( refTable.equalsIgnoreCase( fk.getReferencedTable().getName() ) ) { if ( fk.getColumnSpan() == references.size() ) { List fkRefs; if ( fk.isReferenceToPrimaryKey() ) { fkRefs = fk.getReferencedTable().getPrimaryKey().getColumns(); } else { fkRefs = fk.getReferencedColumns(); } for ( int i = 0; i < fk.getColumnSpan(); i++ ) { Column column = fk.getColumn( i ); Column ref = ( Column ) fkRefs.get( i ); if ( !hasReference( column, ref ) ) { return false; } } return true; } } return false; }
@SuppressWarnings("unchecked") private void bindIncomingForeignKeys(PersistentClass rc, Set<Column> processed, List<ForeignKey> foreignKeys, Mapping mapping) { if(foreignKeys!=null) { for (Iterator<ForeignKey> iter = foreignKeys.iterator(); iter.hasNext();) { ForeignKey foreignKey = iter.next(); if(revengStrategy.excludeForeignKeyAsCollection( foreignKey.getName(), TableIdentifier.create(foreignKey.getTable() ), foreignKey.getColumns(), TableIdentifier.create(foreignKey.getReferencedTable() ), foreignKey.getReferencedColumns())) { log.debug("Rev.eng excluded one-to-many or one-to-one for foreignkey " + foreignKey.getName()); } else if (revengStrategy.isOneToOne(foreignKey)){ Property property = bindOneToOne(rc, foreignKey.getTable(), foreignKey, processed, false, true); rc.addProperty(property); } else { Property property = bindOneToMany(rc, foreignKey, processed, mapping); rc.addProperty(property); } } } }
@SuppressWarnings("unchecked") private void bindIncomingForeignKeys(PersistentClass rc, Set<Column> processed, List<ForeignKey> foreignKeys, Mapping mapping) { if(foreignKeys!=null) { for (Iterator<ForeignKey> iter = foreignKeys.iterator(); iter.hasNext();) { ForeignKey foreignKey = iter.next(); if(revengStrategy.excludeForeignKeyAsCollection( foreignKey.getName(), TableIdentifier.create(foreignKey.getTable() ), foreignKey.getColumns(), TableIdentifier.create(foreignKey.getReferencedTable() ), foreignKey.getReferencedColumns())) { log.debug("Rev.eng excluded one-to-many or one-to-one for foreignkey " + foreignKey.getName()); } else if (revengStrategy.isOneToOne(foreignKey)){ Property property = bindOneToOne(rc, foreignKey.getTable(), foreignKey, processed, false, true); rc.addProperty(property); } else { Property property = bindOneToMany(rc, foreignKey, processed, mapping); rc.addProperty(property); } } } }
/** * Convert a Hibernate foreign key object to a {@link ForeignKey} * @param mappedKey hibernate foreign key. * @param columnIndex 0-based index of the column in a foreign key. * @return a {@link ForeignKey} representation of the same foreign key. */ private ForeignKey convertForeignKey(org.hibernate.mapping.ForeignKey mappedKey, int columnIndex) { org.hibernate.mapping.Column column = mappedKey.getColumn(columnIndex); org.hibernate.mapping.Table table = mappedKey.getTable(); org.hibernate.mapping.Table referencedTable = mappedKey.getReferencedTable(); org.hibernate.mapping.Column referencedColumn; if (mappedKey.getReferencedColumns().size() == 0) { referencedColumn = referencedTable.getPrimaryKey().getColumn(columnIndex); } else { referencedColumn = (org.hibernate.mapping.Column) mappedKey.getReferencedColumns().get(columnIndex); } ForeignKey fkey = new ForeignKey(); fkey.setFkCatalogSchema(m_catalogSchema); fkey.setFkColumn(getColumnName(column)); fkey.setFkName(mappedKey.getName().toLowerCase()); fkey.setFkTable(getTableName(table)); fkey.setKeySeq(String.valueOf(DEFAULT_KEY_SEQ + columnIndex)); fkey.setPkCatalogSchema(m_catalogSchema); fkey.setPkColumn(getColumnName(referencedColumn)); fkey.setPkTable(getTableName(referencedTable)); return fkey; }
@Test public void testCompositeUserDefinedForeignKeys() { Table table = HibernateUtil.getTable(metadata, JdbcUtil.toIdentifier(this, "CHILDREN") ); Iterator<?> foreignKeyIterator = table.getForeignKeyIterator(); ForeignKey fk = (ForeignKey) foreignKeyIterator.next(); Assert.assertEquals(fk.getReferencedTable().getName(), JdbcUtil.toIdentifier(this, "PARENT") ); Assert.assertEquals(2, fk.getReferencedColumns().size()); Assert.assertEquals("child_to_parent", fk.getName()); PersistentClass classMapping = metadata.getEntityBinding("Children"); Property property = classMapping.getProperty("propertyParent"); Assert.assertEquals(2,property.getColumnSpan()); classMapping = metadata.getEntityBinding("Parent"); property = classMapping.getProperty("propertyChildren"); }
fk.getName(), TableIdentifier.create(fk.getReferencedTable()), fk.getReferencedColumns(), TableIdentifier.create(targetTable), fk.getColumns(), fk.getName(), TableIdentifier.create(fk.getReferencedTable()), fk.getReferencedColumns(), TableIdentifier.create(targetTable), fk.getColumns(),
public static ForeignKey generateForeignKey( RuntimeModelCreationContext creationContext, org.hibernate.mapping.ForeignKey bootFk) { final Table runtimeReferencingTable = creationContext.getDatabaseObjectResolver().resolveTable( bootFk.getReferencedTable() ); final Table runtimeTargetTable = creationContext.getDatabaseObjectResolver().resolveTable( bootFk.getTargetTable() ); final ForeignKey.Builder runtimeFkBuilder = new ForeignKey.Builder( bootFk.getName(), bootFk.isCreationEnabled(), bootFk.isReferenceToPrimaryKey(), bootFk.isCascadeDeleteEnabled(), bootFk.getKeyDefinition(), runtimeReferencingTable, runtimeTargetTable ); final Iterator<MappedColumn> bootTargetColumnItr = bootFk.getTargetColumns().iterator(); for ( MappedColumn bootReferencedColumn : bootFk.getReferencedColumns() ) { assert bootTargetColumnItr.hasNext(); final MappedColumn bootTargetColumn = bootTargetColumnItr.next(); runtimeFkBuilder.addColumnMapping( creationContext.getDatabaseObjectResolver().resolveColumn( bootReferencedColumn ), creationContext.getDatabaseObjectResolver().resolveColumn( bootTargetColumn ) ); } return runtimeFkBuilder.build(); } }
fk.getName(), TableIdentifier.create(fk.getReferencedTable()), fk.getReferencedColumns(), TableIdentifier.create(targetTable), fk.getColumns(), fk.getName(), TableIdentifier.create(fk.getReferencedTable()), fk.getReferencedColumns(), TableIdentifier.create(targetTable), fk.getColumns(),
foreignKey.getName(), TableIdentifier.create(foreignKey.getTable() ), foreignKey.getColumns(), TableIdentifier.create(foreignKey.getReferencedTable() ), foreignKey.getReferencedColumns(), true ); property = bindManyToOne( BinderUtils.makeUnique(pkc, propertyName), true, table, foreignKey, processedColumns);
foreignKey.getColumns(), TableIdentifier.create(foreignKey.getReferencedTable() ), foreignKey.getReferencedColumns())) { foreignKey.getColumns(), TableIdentifier.create(foreignKey.getReferencedTable() ), foreignKey.getReferencedColumns(), isUnique );