@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 ( !done.contains( fk ) ) { done.add( fk ); final String referencedEntityName = fk.getReferencedEntityName(); if ( referencedEntityName == null ) { throw new MappingException(
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() ); } }
@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() ); } }
@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() ); } }
/** * @param mutable * @param table * @param fk * @param columnsToBind * @param processedColumns * @param rc * @param propName */ private Property bindManyToOne(String propertyName, boolean mutable, Table table, ForeignKey fk, Set<Column> processedColumns) { ManyToOne value = new ManyToOne(mdbc, table); value.setReferencedEntityName( fk.getReferencedEntityName() ); Iterator<Column> columns = fk.getColumnIterator(); while ( columns.hasNext() ) { Column fkcolumn = (Column) columns.next(); checkColumn(fkcolumn); value.addColumn(fkcolumn); processedColumns.add(fkcolumn); } value.setFetchMode(FetchMode.SELECT); return makeEntityProperty(propertyName, mutable, table, fk, value, false); }
/** * @param mutable * @param table * @param fk * @param columnsToBind * @param processedColumns * @param rc * @param propName */ private Property bindManyToOne(String propertyName, boolean mutable, Table table, ForeignKey fk, Set<Column> processedColumns) { ManyToOne value = new ManyToOne((MetadataImplementor)metadata, table); value.setReferencedEntityName( fk.getReferencedEntityName() ); Iterator<Column> columns = fk.getColumnIterator(); while ( columns.hasNext() ) { Column fkcolumn = (Column) columns.next(); checkColumn(fkcolumn); value.addColumn(fkcolumn); processedColumns.add(fkcolumn); } value.setFetchMode(FetchMode.SELECT); return makeEntityProperty(propertyName, mutable, table, fk, value, false); }
protected void secondPassCompileForeignKeys(Table table, Set done) throws MappingException { table.createForeignKeys(); Iterator iter = table.getForeignKeyIterator(); while ( iter.hasNext() ) { ForeignKey fk = ( ForeignKey ) iter.next(); if ( !done.contains( fk ) ) { done.add( fk ); final String referencedEntityName = fk.getReferencedEntityName(); if (referencedEntityName==null) { throw new MappingException("An association from the table "+ fk.getTable().getName() + " does not specify the referenced entity" ); } if ( log.isDebugEnabled() ) { log.debug( "resolving reference to class: " + referencedEntityName ); } PersistentClass referencedClass = ( PersistentClass ) classes.get( referencedEntityName ); if ( referencedClass == null ) { throw new MappingException( "An association from the table " + fk.getTable().getName() + " refers to an unmapped class: " + referencedEntityName ); } if ( referencedClass.isJoinedSubclass() ) { secondPassCompileForeignKeys( referencedClass.getSuperclass().getTable(), done ); } fk.setReferencedTable( referencedClass.getTable() ); } } }
if ( !done.contains( fk ) ) { done.add( fk ); final String referencedEntityName = fk.getReferencedEntityName(); if ( referencedEntityName == null ) { throw new MappingException(
if ( !done.contains( fk ) ) { done.add( fk ); final String referencedEntityName = fk.getReferencedEntityName(); if ( referencedEntityName == null ) { throw new MappingException(
if ( !done.contains( fk ) ) { done.add( fk ); final String referencedEntityName = fk.getReferencedEntityName(); if ( referencedEntityName == null ) { throw new MappingException(
@Test public void testMultiColumnForeignKeys() { Metadata metadata = metadataDescriptor.createMetadata(); Table table = HibernateUtil.getTable( metadata, JdbcUtil.toIdentifier(this, "LINE_ITEM")); Assert.assertNotNull(table); ForeignKey foreignKey = HibernateUtil.getForeignKey(table, JdbcUtil.toIdentifier(this, "TO_CUSTOMER_ORDER")); Assert.assertNotNull(foreignKey); Assert.assertEquals( reverseEngineeringStrategy.tableToClassName( new TableIdentifier(null, null, JdbcUtil.toIdentifier(this, "CUSTOMER_ORDER"))), foreignKey.getReferencedEntityName()); Assert.assertEquals(JdbcUtil.toIdentifier(this, "LINE_ITEM"), foreignKey.getTable().getName()); Assert.assertEquals(2, foreignKey.getColumnSpan()); Assert.assertEquals(foreignKey.getColumn(0).getName(), "CUSTOMER_ID_REF"); Assert.assertEquals(foreignKey.getColumn(1).getName(), "ORDER_NUMBER"); Table tab = HibernateUtil.getTable( metadata, JdbcUtil.toIdentifier(this, "CUSTOMER_ORDER")); Assert.assertEquals(tab.getPrimaryKey().getColumn(0).getName(), "CUSTOMER_ID"); Assert.assertEquals(tab.getPrimaryKey().getColumn(1).getName(), "ORDER_NUMBER"); PersistentClass lineMapping = metadata.getEntityBinding( reverseEngineeringStrategy .tableToClassName(new TableIdentifier(null, null, JdbcUtil.toIdentifier(this, "LINE_ITEM")))); Assert.assertEquals(4, lineMapping.getIdentifier().getColumnSpan()); Iterator<?> columnIterator = lineMapping.getIdentifier().getColumnIterator(); Assert.assertEquals(((Column) (columnIterator.next())).getName(), "CUSTOMER_ID_REF"); Assert.assertEquals(((Column) (columnIterator.next())).getName(), "ORDER_NUMBER"); }
null, JdbcUtil.toIdentifier(this, "CUSTOMER_ORDER"))), foreignKey.getReferencedEntityName() ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "LINE_ITEM"),
reverseEngineeringStrategy.tableToClassName( new TableIdentifier(null, null, "MASTER")), foreignKey.getReferencedEntityName() ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "CONNECTION"),