private static MetadataImplementor buildMetadata( CommandLineArgs parsedArgs, StandardServiceRegistry serviceRegistry) throws Exception { final MetadataSources metadataSources = new MetadataSources(serviceRegistry); for ( String filename : parsedArgs.hbmXmlFiles ) { metadataSources.addFile( filename ); } for ( String filename : parsedArgs.jarFiles ) { metadataSources.addJar( new File( filename ) ); } final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(); final StrategySelector strategySelector = serviceRegistry.getService( StrategySelector.class ); if ( parsedArgs.implicitNamingStrategy != null ) { metadataBuilder.applyImplicitNamingStrategy( strategySelector.resolveStrategy( ImplicitNamingStrategy.class, parsedArgs.implicitNamingStrategy ) ); } if ( parsedArgs.physicalNamingStrategy != null ) { metadataBuilder.applyPhysicalNamingStrategy( strategySelector.resolveStrategy( PhysicalNamingStrategy.class, parsedArgs.physicalNamingStrategy ) ); } return (MetadataImplementor) metadataBuilder.build(); }
final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder( (StandardServiceRegistry) serviceRegistry ); if ( implicitNamingStrategy != null ) { metadataBuilder.applyImplicitNamingStrategy( implicitNamingStrategy ); metadataBuilder.applyPhysicalNamingStrategy( physicalNamingStrategy ); metadataBuilder.applySharedCacheMode( sharedCacheMode ); metadataBuilder.applyTypes( typeContributor ); metadataBuilder.applyBasicType( basicType ); metadataBuilder.applySqlFunction( entry.getKey(), entry.getValue() ); metadataBuilder.applyAuxiliaryDatabaseObject( auxiliaryDatabaseObject ); metadataBuilder.applyAttributeConverter( attributeConverterDefinition ); final Metadata metadata = metadataBuilder.build();
protected void initialize(MetadataBuilder metadataBuilder) { metadataBuilder.enableNewIdentifierGeneratorSupport( true ); metadataBuilder.applyImplicitNamingStrategy( ImplicitNamingStrategyLegacyJpaImpl.INSTANCE ); }
@Override protected void configureMetadataBuilder(MetadataBuilder metadataBuilder) { metadataBuilder.applyImplicitNamingStrategy( (ImplicitNamingStrategy) TestNamingStrategy.INSTANCE ); metadataBuilder.applyPhysicalNamingStrategy( (PhysicalNamingStrategy) TestNamingStrategy.INSTANCE ); }
@Test public void testWithJpaCompliantNamingStrategy() throws Exception { Metadata metadata = new MetadataSources( serviceRegistry ) .addAnnotatedClass( A.class ) .addAnnotatedClass( AddressEntry.class ) .getMetadataBuilder() .applyImplicitNamingStrategy( ImplicitNamingStrategyJpaCompliantImpl.INSTANCE ) .build(); Collection collectionBinding = metadata.getCollectionBinding( A.class.getName() + ".address" ); assertEquals( "Expecting A#address collection table name (implicit) to be [A_address] per JPA spec (section 11.1.8)", "A_ADDRESS", collectionBinding.getCollectionTable().getQuotedName().toUpperCase(Locale.ROOT) ); }
/** * Short-hand form of calling {@link #getMetadataBuilder()} and using its * {@link org.hibernate.boot.MetadataBuilder#build()} method in cases where the application wants * to accept the defaults. * * @return The built metadata. */ public Metadata buildMetadata() { return getMetadataBuilder().build(); }
@Test public void testHbmXmlHandling() { final Metadata metadata = new MetadataSources( ssr ) .addResource( "org/hibernate/test/namingstrategy/synchronizedTables/mapping.hbm.xml" ) .getMetadataBuilder() .applyPhysicalNamingStrategy( TestingPhysicalNamingStrategy.INSTANCE ) .build(); verify( metadata.getEntityBinding( DynamicEntity.class.getName() ) ); }
@Test public void testNonAutoApplyHandling() { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); try { MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( Tester.class ) .getMetadataBuilder() .applyAttributeConverter( NotAutoAppliedConverter.class, false ) .build(); PersistentClass tester = metadata.getEntityBinding( Tester.class.getName() ); Property nameProp = tester.getProperty( "name" ); SimpleValue nameValue = (SimpleValue) nameProp.getValue(); Type type = nameValue.getType(); assertNotNull( type ); if ( AttributeConverterTypeAdapter.class.isInstance( type ) ) { fail( "AttributeConverter with autoApply=false was auto applied" ); } } finally { StandardServiceRegistryBuilder.destroy( ssr ); } }
metadataBuilder.applyImplicitNamingStrategy( ImplicitNamingStrategyJpaCompliantImpl.INSTANCE ); metadataBuilder.applyImplicitSchemaName( "my_default_schema" ); metadataBuilder.applyAttributeConverter( myAttributeConverter ); Metadata metadata = metadataBuilder.build();
.applyImplicitNamingStrategy(ImplicitNamingStrategyJpaCompliantImpl.INSTANCE) .applyScanEnvironment(new ScanEnvImpl(packages)) .build();
@Override protected void configureMetadataBuilder(MetadataBuilder metadataBuilder) { metadataBuilder.applyImplicitNamingStrategy( ImplicitNamingStrategyLegacyHbmImpl.INSTANCE ); }
metadataBuilder.enableNewIdentifierGeneratorSupport(true); metadataBuilder.applyImplicitNamingStrategy(ImplicitNamingStrategyLegacyJpaImpl.INSTANCE); metadataBuilder.applyTypes((typeContributions, serviceRegistry1) -> { if(type instanceof BasicType) { typeContributions.contributeType((BasicType) type); MetadataImplementor metadata = (MetadataImplementor) metadataBuilder.build();
/** * Get the v5 Metadata object. */ public synchronized Metadata getMetadata() throws HibernateException { if (metadata != null) { return metadata; } final org.hibernate.cfg.Configuration configV5 = getConfigurationV5(); final StandardServiceRegistry serviceRegistry = buildServiceRegistry(configV5); mapDialectObjects(serviceRegistry); final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(serviceRegistry); metadataBuilder.applyTypes(new V2ToV5TypeContributor(this)); if (useV2PostgresSchemaNamingStrategy()) { metadataBuilder.applyImplicitNamingStrategy(V2_POSTGRES_NAMING_STRATEGY); } metadata = metadataBuilder.build(); updateV5MetaData(metadata); return metadata; }
final TypeContributor[] typeContributors = osgiServiceUtil.getServiceImpls( TypeContributor.class ); for ( TypeContributor typeContributor : typeContributors ) { metadataBuilder.applyTypes( typeContributor ); return metadataBuilder.build().buildSessionFactory();
@Test public void testCollectionAsBasic() { StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); try { Metadata metadata = new MetadataSources(ssr).addAnnotatedClass( Post.class ) .getMetadataBuilder().applyBasicType( new DelimitedStringsType() ) .build(); PersistentClass postBinding = metadata.getEntityBinding( Post.class.getName() ); Property tagsAttribute = postBinding.getProperty( "tags" ); } finally { StandardServiceRegistryBuilder.destroy( ssr ); } }
@Test @TestForIssue( jiraKey = "HHH-9913" ) public void testNonAggregatedCompositeIdWithPkClass() { // HHH-9913 reports a NPE when bootstrapping a SF with non-aggregated composite identifiers // in org.hibernate.cache.internal.CacheDataDescriptionImpl#decode StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); try { new MetadataSources( ssr ) .addAnnotatedClass( ItWithPkClass.class ) .getMetadataBuilder() .applySharedCacheMode( SharedCacheMode.ENABLE_SELECTIVE ) .build() .buildSessionFactory(); } finally { StandardServiceRegistryBuilder.destroy( ssr ); } } }
@Test public void testPropertyBasedDiscriminatorForcing() throws Exception { final StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); try { Metadata metadata = new MetadataSources( ssr ) .addAnnotatedClass( BaseClass2.class ) .addAnnotatedClass( SubClass2.class ) .getMetadataBuilder() .enableImplicitForcingOfDiscriminatorsInSelect( true ) .build(); PersistentClass persistentClass = metadata.getEntityBinding( BaseClass2.class.getName() ); assertNotNull( persistentClass ); assertTrue( persistentClass instanceof RootClass ); RootClass root = ( RootClass ) persistentClass; assertTrue( "Discriminator should be forced by property", root.isForceDiscriminator() ); } finally { StandardServiceRegistryBuilder.destroy( ssr ); } } }
@Override public void contribute(MetadataBuilder metadataBuilder) { metadataBuilder.applySqlFunction( "instr", new StandardSQLFunction( "instr", StandardBasicTypes.STRING ) ); } }
protected void configurePhysicalNamingStrategy(String physicalNamingStrategy, MetadataBuilder builder) throws DatabaseException { String namingStrategy; namingStrategy = getHibernateConnection().getProperties().getProperty(AvailableSettings.PHYSICAL_NAMING_STRATEGY, physicalNamingStrategy); try { if (namingStrategy != null) { builder.applyPhysicalNamingStrategy((PhysicalNamingStrategy) Class.forName(namingStrategy).newInstance()); } } catch (Exception e) { throw new DatabaseException(e); } }
@Override protected void addConfigOptions(Map options) { options.put( EntityManagerFactoryBuilderImpl.METADATA_BUILDER_CONTRIBUTOR, (MetadataBuilderContributor) metadataBuilder -> metadataBuilder.applyAttributeConverter( YearMonthAttributeConverter.class ) ); }