@Override public Identifier determineImplicitName(LocalMetadataBuildingContext context) { final Column column = primaryTable.getPrimaryKey().getColumn( count++ ); return database.toIdentifier( column.getQuotedName() ); } }
@Test public void testBasic() throws SQLException { JUnitUtil.assertIteratorContainsExactly( "There should be three tables!", metadata.getEntityBindings().iterator(), 3); Table table = HibernateUtil.getTable( metadata, JdbcUtil.toIdentifier(this, "BASIC")); Assert.assertEquals( JdbcUtil.toIdentifier(this, "BASIC"), JdbcUtil.toIdentifier(this, table.getName())); Assert.assertEquals(2, table.getColumnSpan()); Column basicColumn = table.getColumn(0); Assert.assertEquals( JdbcUtil.toIdentifier(this, "A"), JdbcUtil.toIdentifier(this, basicColumn.getName())); PrimaryKey key = table.getPrimaryKey(); Assert.assertNotNull("There should be a primary key!", key); Assert.assertEquals(key.getColumnSpan(), 1); Column column = key.getColumn(0); Assert.assertTrue(column.isUnique()); Assert.assertSame(basicColumn, column); }
@Test public void testBasic() { JUnitUtil.assertIteratorContainsExactly( "There should be three tables!", metadata.getEntityBindings().iterator(), 3); Table table = HibernateUtil.getTable( metadata, JdbcUtil.toIdentifier(this, "BASIC" ) ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "BASIC"), JdbcUtil.toIdentifier(this, table.getName())); Assert.assertEquals( 2, table.getColumnSpan() ); Column basicColumn = table.getColumn( 0 ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "A"), JdbcUtil.toIdentifier(this, basicColumn.getName())); // TODO: we cannot call getSqlType(dialect,cfg) without a // MappingassertEquals("INTEGER", basicColumn.getSqlType() ); // at // least on hsqldb // assertEquals(22, basicColumn.getLength() ); // at least on oracle PrimaryKey key = table.getPrimaryKey(); Assert.assertNotNull( "There should be a primary key!", key ); Assert.assertEquals( key.getColumnSpan(), 1 ); Column column = key.getColumn( 0 ); Assert.assertTrue( column.isUnique() ); Assert.assertSame( basicColumn, column ); }
@Override public Identifier determineImplicitName(LocalMetadataBuildingContext context) { final Column correspondingColumn = entityTableXref.getPrimaryTable().getPrimaryKey().getColumn( count++ ); return database.toIdentifier( correspondingColumn.getQuotedName() ); } }
@Test public void testBasic() throws SQLException { JUnitUtil.assertIteratorContainsExactly( "There should be three tables!", metadata.getEntityBindings().iterator(), 3); Table table = HibernateUtil.getTable( metadata, JdbcUtil.toIdentifier(this, "BASIC" ) ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "BASIC"), JdbcUtil.toIdentifier(this, table.getName()) ); Assert.assertEquals( 2, table.getColumnSpan() ); Column basicColumn = table.getColumn( 0 ); Assert.assertEquals( JdbcUtil.toIdentifier(this, "A"), JdbcUtil.toIdentifier(this, basicColumn.getName() )); // TODO: we cannot call getSqlType(dialect,cfg) without a // MappingassertEquals("INTEGER", basicColumn.getSqlType() ); // at // least on hsqldb // assertEquals(22, basicColumn.getLength() ); // at least on oracle PrimaryKey key = table.getPrimaryKey(); Assert.assertNotNull( "There should be a primary key!", key ); Assert.assertEquals( key.getColumnSpan(), 1 ); Column column = key.getColumn( 0 ); Assert.assertTrue( column.isUnique() ); Assert.assertSame( basicColumn, column ); }
/** * 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 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"); }
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(