public String toString() { if ( !isReferenceToPrimaryKey() ) { return getClass().getName() + '(' + getTable().getName() + getColumns() + " ref-columns:" + '(' + getReferencedColumns() + ") as " + getName() + ")"; } else { return super.toString(); } }
@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() ); } }
private void assertForeignKey(String foreignKeyName, String... columns) { Set<String> columnSet = new LinkedHashSet<>( Arrays.asList( columns ) ); for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { for ( org.hibernate.mapping.Table table : namespace.getTables() ) { Iterator<org.hibernate.mapping.ForeignKey> fkItr = table.getForeignKeyIterator(); while ( fkItr.hasNext() ) { org.hibernate.mapping.ForeignKey fk = fkItr.next(); if ( foreignKeyName.equals( fk.getName() ) ) { assertEquals( "ForeignKey column count not like expected", columnSet.size(), fk.getColumnSpan() ); List<String> columnNames = fk.getColumns().stream().map(Column::getName).collect(Collectors.toList()); assertTrue( "ForeignKey columns [" + columnNames + "] do not match expected columns [" + columnSet + "]", columnSet.containsAll( columnNames ) ); return; } } } } fail( "ForeignKey '" + foreignKeyName + "' could not be found!" ); }
final List<Identifier> columnNames = extractColumnNames( fk.getColumns() ); List<Identifier> referencedColumnNames = null;
public String toString() { return String.format( Locale.ROOT, "Boot-model ForeignKey[ (%s) => (%s) ]", getColumns(), getReferencedColumns() ); }
/** * Convert a Hibernate foreign key object to a {@link ForeignKey}, then add to the foreign key (fk) set. * For composite fk each column is converted to a {@link ForeignKey} with a unique sequence number. * @param mappedKey hibernate foreign key. * @param fkeys a {@link ForeignKey} Set. */ private void convertForeignKey(org.hibernate.mapping.ForeignKey mappedKey, Set<ForeignKey> fkeys) { for (int i = 0; i < mappedKey.getColumns().size(); i++) { ForeignKey fkey = convertForeignKey(mappedKey, i); if (fkey != null) { fkeys.add(fkey); } } }
private boolean isAppliedToForeignColumns(Table table, Constraint constraint) { List<?> constraintColumns = constraint.getColumns(); for ( Iterator<?> iterator = table.getForeignKeyIterator(); iterator.hasNext(); ) { ForeignKey foreignKey = (ForeignKey) iterator.next(); List<?> foreignKeyColumns = foreignKey.getColumns(); for ( Object object : foreignKeyColumns ) { if ( constraintColumns.contains( object ) ) { // This constraint requires a foreign column return true; } } } return false; }
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 void createForeignKeys() { includedTable.createForeignKeys(); Iterator iter = includedTable.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = (ForeignKey) iter.next(); createForeignKey( fk.getName() + Integer.toHexString( getName().hashCode() ), fk.getColumns(), fk.getReferencedEntityName() ); } }
@Override public void createForeignKeys() { includedTable.createForeignKeys(); Iterator iter = includedTable.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = (ForeignKey) iter.next(); createForeignKey( fk.getName() + Integer.toHexString( getName().hashCode() ), fk.getColumns(), fk.getReferencedEntityName() ); } }
public void createForeignKeys() { includedTable.createForeignKeys(); Iterator iter = includedTable.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = (ForeignKey) iter.next(); this.createForeignKey( fk.getName() + Integer.toHexString( getName().hashCode() ), fk.getColumns(), fk.getReferencedEntityName() ); } }
public String foreignKeyToManyToManyName(ForeignKey fromKey, TableIdentifier middleTable, ForeignKey toKey, boolean uniqueReference) { String propertyName = Introspector.decapitalize( StringHelper.unqualify( getRoot().tableToClassName(TableIdentifier.create( toKey.getReferencedTable()) )) ); propertyName = pluralize( propertyName ); if(!uniqueReference) { //TODO: maybe use the middleTable name here ? if(toKey.getColumns()!=null && toKey.getColumns().size()==1) { String columnName = ( (Column) toKey.getColumns().get(0) ).getName(); propertyName = propertyName + "For" + toUpperCamelCase(columnName); } else { // composite key or no columns at all safeguard propertyName = propertyName + "For" + toUpperCamelCase(toKey.getName()); } } return propertyName; }
public String foreignKeyToManyToManyName(ForeignKey fromKey, TableIdentifier middleTable, ForeignKey toKey, boolean uniqueReference) { String propertyName = Introspector.decapitalize( StringHelper.unqualify( getRoot().tableToClassName(TableIdentifier.create( toKey.getReferencedTable()) )) ); propertyName = pluralize( propertyName ); if(!uniqueReference) { //TODO: maybe use the middleTable name here ? if(toKey.getColumns()!=null && toKey.getColumns().size()==1) { String columnName = ( (Column) toKey.getColumns().get(0) ).getName(); propertyName = propertyName + "For" + toUpperCamelCase(columnName); } else { // composite key or no columns at all safeguard propertyName = propertyName + "For" + toUpperCamelCase(toKey.getName()); } } return propertyName; }
@Override public void createForeignKeys() { includedTable.createForeignKeys(); Iterator iter = includedTable.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = (ForeignKey) iter.next(); createForeignKey( fk.getName() + Integer.toHexString( getName().hashCode() ), fk.getColumns(), fk.getReferencedEntityName() ); } }
public boolean isOneToOne(ForeignKey foreignKey) { if(settings.getDetectOneToOne()) { // add support for non-PK associations List<Column> fkColumns = foreignKey.getColumns(); List<Column> pkForeignTableColumns = null; if (foreignKey.getTable().hasPrimaryKey()) pkForeignTableColumns = foreignKey.getTable().getPrimaryKey().getColumns(); boolean equals = fkColumns != null && pkForeignTableColumns != null && fkColumns.size() == pkForeignTableColumns.size(); Iterator<Column> columns = foreignKey.getColumnIterator(); while (equals && columns.hasNext()) { Column fkColumn = (Column) columns.next(); equals = equals && pkForeignTableColumns.contains(fkColumn); } return equals; } else { return false; } }
public boolean isOneToOne(ForeignKey foreignKey) { if(settings.getDetectOneToOne()) { // add support for non-PK associations List<Column> fkColumns = foreignKey.getColumns(); List<Column> pkForeignTableColumns = null; if (foreignKey.getTable().hasPrimaryKey()) pkForeignTableColumns = foreignKey.getTable().getPrimaryKey().getColumns(); boolean equals = fkColumns != null && pkForeignTableColumns != null && fkColumns.size() == pkForeignTableColumns.size(); Iterator<Column> columns = foreignKey.getColumnIterator(); while (equals && columns.hasNext()) { Column fkColumn = (Column) columns.next(); equals = equals && pkForeignTableColumns.contains(fkColumn); } return equals; } else { 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); } } } }