@Override public Database getDatabase() { return delegate.getDatabase(); }
private void assertNoForeignKey(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(); assertFalse( "ForeignKey [" + foreignKeyName + "] defined and shouldn't have been.", foreignKeyName.equals( fk.getName() ) ); } } } }
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!" ); }
@Test @TestForIssue(jiraKey = "HHH-12975") public void testPrimaryKeyJoinColumnForeignKeyNoConstraint() { for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { for ( Table table : namespace.getTables() ) { if ( "Car".equals( table.getName() ) ) { assertEquals( 0, table.getForeignKeys().size() ); } } } }
@Test @TestForIssue(jiraKey = "HHH-12975") public void testMapsIdJoinColumnForeignKeyNoConstraint() { for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { for ( Table table : namespace.getTables() ) { if ( "Post".equals( table.getName() ) ) { assertEquals( 0, table.getForeignKeys().size() ); } } } }
@Test public void testJoinTableForeignKeyToNonAuditTables() { // there should only be references to REVINFO and not to the Customer or Address tables for ( Table table : metadata().getDatabase().getDefaultNamespace().getTables() ) { if ( table.getName().equals( "CustomerAddress_AUD" ) ) { for ( org.hibernate.mapping.ForeignKey foreignKey : table.getForeignKeys().values() ) { assertEquals( "REVINFO", foreignKey.getReferencedTable().getName() ); } } } }
@Test public void testForeignKeyNameSetForMapsIdJoinColumn() { for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { for ( Table table : namespace.getTables() ) { if ( table.getName().equals( "Post" ) ) { Iterator<org.hibernate.mapping.ForeignKey> foreignKeyIterator = table.getForeignKeyIterator(); while ( foreignKeyIterator.hasNext() ) { org.hibernate.mapping.ForeignKey foreignKey = foreignKeyIterator.next(); if ( foreignKey.getColumn( 0 ).getName().equals( "PD_ID" ) ) { assertEquals( "FK_PD", foreignKey.getName() ); return; } } } } } fail( "Expected to find a Foreign Key mapped to column PD_ID but failed to locate it" ); } }
@Test @TestForIssue( jiraKey = "HHH-9936" ) public void testMultipleUsesOfDefaultSequenceName() { final MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( Entity1.class ) .addAnnotatedClass( Entity2.class ) .buildMetadata(); metadata.validate(); assertEquals( 0, metadata.getDatabase().getAuxiliaryDatabaseObjects().size() ); int count = 0; for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { for ( Sequence sequence : namespace.getSequences() ) { count++; } } assertEquals( 1, count ); }
@Test @TestForIssue( jiraKey = "HHH-9936" ) public void testMultipleUsesOfExplicitSequenceName() { final MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( Entity3.class ) .addAnnotatedClass( Entity4.class ) .buildMetadata(); metadata.validate(); assertEquals( 0, metadata.getDatabase().getAuxiliaryDatabaseObjects().size() ); int count = 0; for ( Namespace namespace : metadata.getDatabase().getNamespaces() ) { for ( Sequence sequence : namespace.getSequences() ) { count++; } } assertEquals( 1, count ); }
final Database database = creationContext.getMetadata().getDatabase(); final JdbcEnvironment jdbcEnvironment = database.getJdbcEnvironment();
@Test public void testQualifiedNameSeparator() throws Exception { Namespace.Name namespaceName = new Namespace.Name( Identifier.toIdentifier( "DB1" ), Identifier.toIdentifier( "PUBLIC" ) ); String expectedName = null; for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { if ( !namespace.getName().equals( namespaceName ) ) { continue; } assertEquals( 1, namespace.getTables().size() ); expectedName = metadata().getDatabase().getJdbcEnvironment().getQualifiedObjectNameFormatter().format( namespace.getTables().iterator().next().getQualifiedTableName(), getDialect() ); } assertNotNull( expectedName ); SingleTableEntityPersister persister = (SingleTableEntityPersister) sessionFactory().getEntityPersister( Box.class.getName() ); assertEquals( expectedName, persister.getTableName() ); }
public void testConstraintNameLength() { int foundCount = 0; for ( Namespace namespace : metadata().getDatabase().getNamespaces() ) { for ( org.hibernate.mapping.Table table : namespace.getTables() ) { Iterator fkItr = table.getForeignKeyIterator();
final Database database = creationContext.getMetadata().getDatabase(); final JdbcEnvironment jdbcEnvironment = database.getJdbcEnvironment();
final Database database = creationContext.getMetadata().getDatabase(); final JdbcEnvironment jdbcEnvironment = database.getJdbcEnvironment();
private InformationExtractorJdbcDatabaseMetaDataImplTest buildInformationExtractorJdbcDatabaseMetaDataImplTest() throws SQLException { Database database = metadata.getDatabase(); final ConnectionProvider connectionProvider = ssr.getService( ConnectionProvider.class ); DatabaseInformation dbInfo = new DatabaseInformationImpl( ssr, database.getJdbcEnvironment(), new DdlTransactionIsolatorTestingImpl( ssr, new JdbcEnvironmentInitiator.ConnectionProviderJdbcConnectionAccess( connectionProvider ) ), database.getDefaultNamespace().getName() ); ExtractionContextImpl extractionContext = new ExtractionContextImpl( ssr, database.getJdbcEnvironment(), ssr.getService( JdbcServices.class ).getBootstrapJdbcConnectionAccess(), (ExtractionContext.DatabaseObjectAccess) dbInfo, database.getDefaultNamespace().getPhysicalName().getCatalog(), database.getDefaultNamespace().getPhysicalName().getSchema() ); return new InformationExtractorJdbcDatabaseMetaDataImplTest( extractionContext ); }
PersisterCreationContext creationContext) throws MappingException, CacheException { final Database database = creationContext.getMetadata().getDatabase(); final JdbcEnvironment jdbcEnvironment = database.getJdbcEnvironment();
@Override public Database getDatabase() { return delegate.getDatabase(); }
private String getBasicTypeSqlType(BasicType basicType) { final int sqlType = basicType.getSqlTypeDescriptor().getJdbcTypeCode(); return metadata.getDatabase().getDialect().getTypeName( sqlType ); } }
public static DatabaseModel buildDatabaseModel(MetadataImplementor metadata) { final DatabaseObjectResolutionContextImpl dbObjectResolver = new DatabaseObjectResolutionContextImpl(); final BootstrapContext bootstrapContext = metadata.getTypeConfiguration() .getMetadataBuildingContext() .getBootstrapContext(); return new RuntimeDatabaseModelProducer( bootstrapContext ) .produceDatabaseModel( metadata.getDatabase(), dbObjectResolver, dbObjectResolver ); } }
private DatabaseInformation getDatabaseInformation() { final ServiceRegistry serviceRegistry = metadataImplementor.getMetadataBuildingOptions().getServiceRegistry(); // final ConfigurationService cfgService = serviceRegistry.getService( ConfigurationService.class ); // final SchemaManagementTool schemaManagementTool = serviceRegistry.getService( SchemaManagementTool.class ); // final SchemaMigrator schemaMigrator = schemaManagementTool.getSchemaMigrator( cfgService.getSettings() ); final JdbcServices jdbcServices = serviceRegistry.getService( JdbcServices.class ); final JdbcConnectionAccess jdbcConnectionAccess = jdbcServices.getBootstrapJdbcConnectionAccess(); final DatabaseInformation databaseInformation; try { databaseInformation = new DatabaseInformationImpl( serviceRegistry, serviceRegistry.getService( JdbcEnvironment.class ), jdbcConnectionAccess, metadataImplementor.getDatabase().getDefaultNamespace().getPhysicalName().getCatalog(), metadataImplementor.getDatabase().getDefaultNamespace().getPhysicalName().getSchema() ); } catch (SQLException e) { throw jdbcServices.getSqlExceptionHelper().convert( e, "Error creating DatabaseInformation for schema migration" ); } return databaseInformation; }