List of usage examples for org.hibernate.boot MetadataBuilder build
public Metadata build();
From source file:com.fitbur.testify.fixture.common.SessionFactoryFactoryBean.java
License:Apache License
@Override public SessionFactory getObject() throws Exception { StandardServiceRegistry registry = new StandardServiceRegistryBuilder() .loadProperties("hibernate.properties").applySetting(Environment.DATASOURCE, dataSource).build(); Reflections reflections = new Reflections(DatabaseConfig.class.getPackage().getName()); MetadataSources metadataSources = new MetadataSources(registry); MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder() .applyPhysicalNamingStrategy(new PhysicalNamingStrategyStandardImpl()) .applyImplicitNamingStrategy(new ImplicitNamingStrategyComponentPathImpl()); reflections.getSubTypesOf(AttributeConverter.class).parallelStream() .forEach(metadataBuilder::applyAttributeConverter); reflections.getTypesAnnotatedWith(Entity.class).parallelStream() .forEach(metadataSources::addAnnotatedClass); Metadata metadata = metadataBuilder.build(); return metadata.buildSessionFactory(); }
From source file:com.fitbur.testify.fixture.PostgresDockerConfig.java
License:Apache License
@Bean FactoryBean<SessionFactory> sessionFactoryImplProvider(DataSource dataSource) { return new SmartFactoryBean<SessionFactory>() { @Override/*w ww .j a v a2s . co m*/ public boolean isPrototype() { return false; } @Override public boolean isEagerInit() { return true; } @Override public SessionFactory getObject() throws Exception { StandardServiceRegistry registry = new StandardServiceRegistryBuilder() .loadProperties("hibernate.properties").applySetting(Environment.DATASOURCE, dataSource) .build(); Reflections reflections = new Reflections(PostgresDockerConfig.class.getPackage().getName()); MetadataSources metadataSources = new MetadataSources(registry); MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder() .applyPhysicalNamingStrategy(new PhysicalNamingStrategyStandardImpl()) .applyImplicitNamingStrategy(new ImplicitNamingStrategyComponentPathImpl()); reflections.getSubTypesOf(AttributeConverter.class).parallelStream() .forEach(metadataBuilder::applyAttributeConverter); reflections.getTypesAnnotatedWith(Entity.class).parallelStream() .forEach(metadataSources::addAnnotatedClass); Metadata metadata = metadataBuilder.build(); return metadata.buildSessionFactory(); } @Override public Class<?> getObjectType() { return SessionFactory.class; } @Override public boolean isSingleton() { return true; } }; }
From source file:com.foilen.smalltools.tools.Hibernate50Tools.java
License:Open Source License
/** * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)} * * @param dialect/*w w w . j a v a 2s . c o m*/ * the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect ) * @param outputSqlFile * where to put the generated SQL file * @param useUnderscore * true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager" * @param packagesToScan * the packages where your entities are */ public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile, boolean useUnderscore, String... packagesToScan) { BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build(); MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class)); for (String pkg : packagesToScan) { for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) { metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName()); } } StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder( bootstrapServiceRegistry); standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName()); StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build(); MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr); if (useUnderscore) { metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy()); metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy()); } MetadataImpl metadata = (MetadataImpl) metadataBuilder.build(); // Exportation SchemaExport schemaExport = new SchemaExport(metadata); schemaExport.setOutputFile(outputSqlFile); schemaExport.setDelimiter(";"); schemaExport.setFormat(true); schemaExport.execute(true, false, false, true); }
From source file:com.foilen.smalltools.tools.Hibernate51Tools.java
License:Open Source License
/** * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)} * * @param dialect//www .j a v a2 s . co m * the dialect (e.g: org.hibernate.dialect.MySQL5InnoDBDialect ) * @param outputSqlFile * where to put the generated SQL file * @param useUnderscore * true: to have tables names like "employe_manager" ; false: to have tables names like "employeManager" * @param packagesToScan * the packages where your entities are */ public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile, boolean useUnderscore, String... packagesToScan) { BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder().build(); MetadataSources metadataSources = new MetadataSources(bootstrapServiceRegistry); ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); scanner.addIncludeFilter(new AnnotationTypeFilter(Entity.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(Embeddable.class)); scanner.addIncludeFilter(new AnnotationTypeFilter(MappedSuperclass.class)); for (String pkg : packagesToScan) { for (BeanDefinition beanDefinition : scanner.findCandidateComponents(pkg)) { metadataSources.addAnnotatedClassName(beanDefinition.getBeanClassName()); } } StandardServiceRegistryBuilder standardServiceRegistryBuilder = new StandardServiceRegistryBuilder( bootstrapServiceRegistry); standardServiceRegistryBuilder.applySetting(AvailableSettings.DIALECT, dialect.getName()); StandardServiceRegistryImpl ssr = (StandardServiceRegistryImpl) standardServiceRegistryBuilder.build(); MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(ssr); if (useUnderscore) { metadataBuilder.applyImplicitNamingStrategy(new SpringImplicitNamingStrategy()); metadataBuilder.applyPhysicalNamingStrategy(new SpringPhysicalNamingStrategy()); } new SchemaExport() // .setHaltOnError(true) // .setOutputFile(outputSqlFile) // .setFormat(true) // .setDelimiter(";") // .execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.CREATE, metadataBuilder.build()); }
From source file:com.zeroone.guestebook.domain.SchemaGenerator.java
License:Apache License
public SchemaGenerator(String packageName, Dialect dialect) throws Exception { BootstrapServiceRegistry bsr;// w w w . j a va2s . c o m bsr = new BootstrapServiceRegistryBuilder().build(); StandardServiceRegistryBuilder ssrBuilder; ssrBuilder = new StandardServiceRegistryBuilder(bsr); ssrBuilder.applySetting("hibernate.dialect", dialect.dialectClass); ServiceRegistry serviceRegistry = ssrBuilder.build(); MetadataSources metadataSources = new MetadataSources(serviceRegistry); for (Class<?> clazz : getClasses(packageName)) { metadataSources.addAnnotatedClass(clazz); } MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(); this.metadata = (MetadataImplementor) metadataBuilder.build(); this.dialect = dialect; }
From source file:org.openflexo.connie.hbn.HbnConfig.java
License:Open Source License
public Metadata getMetadata() { if (metadata == null) { MetadataBuilder builder = getBuilder(); metadata = builder.build(); } else {/* ww w . j a v a 2 s .co m*/ LOGGER.warning("Metadata has already been generated"); } return metadata; }
From source file:org.wallride.tools.Hbm2ddl.java
License:Apache License
public static void main(String[] args) throws Exception { String locationPattern = "classpath:/org/wallride/domain/*"; final BootstrapServiceRegistry registry = new BootstrapServiceRegistryBuilder().build(); final MetadataSources metadataSources = new MetadataSources(registry); final StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder(registry); registryBuilder.applySetting(AvailableSettings.DIALECT, ExtendedMySQL5InnoDBDialect.class.getCanonicalName()); registryBuilder.applySetting(AvailableSettings.GLOBALLY_QUOTED_IDENTIFIERS, true); registryBuilder.applySetting(AvailableSettings.PHYSICAL_NAMING_STRATEGY, PhysicalNamingStrategySnakeCaseImpl.class); final PathMatchingResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); final Resource[] resources = resourcePatternResolver.getResources(locationPattern); final SimpleMetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory(); for (Resource resource : resources) { MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource); AnnotationMetadata metadata = metadataReader.getAnnotationMetadata(); if (metadata.hasAnnotation(Entity.class.getName())) { metadataSources.addAnnotatedClass(Class.forName(metadata.getClassName())); }// w ww . j a v a 2 s . c om } final StandardServiceRegistryImpl registryImpl = (StandardServiceRegistryImpl) registryBuilder.build(); final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder(registryImpl); new SchemaExport().setHaltOnError(true).setDelimiter(";").create(EnumSet.of(TargetType.STDOUT), metadataBuilder.build()); }