List of usage examples for org.hibernate.tool.hbm2ddl SchemaExport setOutputFile
public SchemaExport setOutputFile(String filename)
From source file:com.evolveum.midpoint.repo.sql.SchemaTest.java
License:Apache License
private void createSQLSchema(String fileName, String dialect) { File file = new File(fileName); if (file.exists()) { file.delete();// w w w . j a va2 s . co m } MetadataSources metadata = new MetadataSources(new StandardServiceRegistryBuilder() .applySetting("hibernate.implicit_naming_strategy", new MidPointImplicitNamingStrategy()) .applySetting("hibernate.physical_naming_strategy", new MidPointPhysicalNamingStrategy()) .applySetting("hibernate.dialect", dialect).build()); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.container", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.any", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.embedded", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.enums", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.id", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.other", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.type", metadata); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.audit", metadata); metadata.addPackage("com.evolveum.midpoint.repo.sql.type"); SchemaExport export = new SchemaExport(); export.setOutputFile(fileName); export.setDelimiter(";"); // export.setFormat(true); export.execute(EnumSet.of(TargetType.SCRIPT), SchemaExport.Action.CREATE, metadata.buildMetadata()); }
From source file:com.evolveum.midpoint.repo.sql.SpringApplicationContextTest.java
License:Apache License
private void createSQLSchema(String fileName, String dialect) throws Exception { org.hibernate.cfg.Configuration configuration = new Configuration(); configuration.setNamingStrategy(new MidPointNamingStrategy()); configuration.setProperties(sessionFactory.getHibernateProperties()); sessionFactory.getHibernateProperties().setProperty("hibernate.dialect", dialect); System.out.println("Dialect: " + sessionFactory.getHibernateProperties().getProperty("hibernate.dialect")); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.container", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.any", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.embedded", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.enums", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.id", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.other", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.common.type", configuration); addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.audit", configuration); // addAnnotatedClasses("com.evolveum.midpoint.repo.sql.data.poc", configuration); configuration.addPackage("com.evolveum.midpoint.repo.sql.type"); SchemaExport export = new SchemaExport(configuration); export.setOutputFile(fileName); export.setDelimiter(";"); export.execute(true, false, false, true); }
From source file:com.foilen.smalltools.tools.Hibernate4Tools.java
License:Open Source License
/** * Generate the SQL file. This is based on the code in {@link LocalSessionFactoryBuilder#scanPackages(String...)} * * @param dialect/*from www .j av a 2s. c om*/ * 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 */ @SuppressWarnings("deprecation") public static void generateSqlSchema(Class<? extends Dialect> dialect, String outputSqlFile, boolean useUnderscore, String... packagesToScan) { // Configuration Configuration configuration = new Configuration(); if (useUnderscore) { configuration.setNamingStrategy(new ImprovedNamingStrategy()); } Properties properties = new Properties(); properties.setProperty(AvailableSettings.DIALECT, dialect.getName()); // Scan packages Set<String> classNames = new TreeSet<String>(); Set<String> packageNames = new TreeSet<String>(); try { for (String pkg : packagesToScan) { String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(pkg) + RESOURCE_PATTERN; Resource[] resources = resourcePatternResolver.getResources(pattern); MetadataReaderFactory readerFactory = new CachingMetadataReaderFactory(resourcePatternResolver); for (Resource resource : resources) { if (resource.isReadable()) { MetadataReader reader = readerFactory.getMetadataReader(resource); String className = reader.getClassMetadata().getClassName(); if (matchesEntityTypeFilter(reader, readerFactory)) { classNames.add(className); } else if (className.endsWith(PACKAGE_INFO_SUFFIX)) { packageNames .add(className.substring(0, className.length() - PACKAGE_INFO_SUFFIX.length())); } } } } } catch (IOException ex) { throw new MappingException("Failed to scan classpath for unlisted classes", ex); } try { for (String className : classNames) { configuration.addAnnotatedClass(resourcePatternResolver.getClassLoader().loadClass(className)); } for (String packageName : packageNames) { configuration.addPackage(packageName); } } catch (ClassNotFoundException ex) { throw new MappingException("Failed to load annotated classes from classpath", ex); } // Exportation SchemaExport schemaExport = new SchemaExport(configuration, properties); schemaExport.setOutputFile(outputSqlFile); schemaExport.setDelimiter(";"); schemaExport.setFormat(true); schemaExport.execute(true, false, false, 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 2 s. c om * 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.github.gekoh.yagen.ddl.DDLGenerator.java
License:Apache License
public void writeDDL(Profile profile) { SchemaExport export = new SchemaExportFactory().createSchemaExport(profile); export.setDelimiter(";"); export.setFormat(true);/*w ww. ja va 2 s. c o m*/ export.setOutputFile(profile.getOutputFile()); export.execute(true, false, false, true); LOG.info("schema script written to file {}", profile.getOutputFile()); }
From source file:com.ikon.dao.HibernateUtil.java
License:Open Source License
/** * Generate database schema and initial data for a defined dialect *//*from ww w. j ava 2 s.c om*/ public static void generateDatabase(String dialect) throws IOException { // Configure Hibernate log.info("Exporting Database Schema..."); String dbSchema = EnvironmentDetector.getUserHome() + "/schema.sql"; Configuration cfg = getConfiguration().configure(); cfg.setProperty("hibernate.dialect", dialect); SchemaExport se = new SchemaExport(cfg); se.setOutputFile(dbSchema); se.setDelimiter(";"); se.setFormat(false); se.create(false, false); log.info("Database Schema exported to {}", dbSchema); String initialData = new File("").getAbsolutePath() + "/src/main/resources/default.sql"; log.info("Exporting Initial Data from '{}'...", initialData); String initData = EnvironmentDetector.getUserHome() + "/data.sql"; FileInputStream fis = new FileInputStream(initialData); String ret = DatabaseDialectAdapter.dialectAdapter(fis, dialect); FileWriter fw = new FileWriter(initData); IOUtils.write(ret, fw); fw.flush(); fw.close(); log.info("Initial Data exported to {}", initData); }
From source file:com.imos.sample.service.HibernateService.java
/** * Hibernate configuration./*from ww w. ja va 2 s. com*/ * * @throws RepositoryException */ public void config() throws RepositoryException { try { StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder(); if (filePath == null || filePath.isEmpty()) { registryBuilder = registryBuilder.configure(); } else { registryBuilder = registryBuilder.configure(filePath); } registry = registryBuilder.build(); MetadataSources metaData = new MetadataSources(registry); sessionFactory = metaData.buildMetadata().buildSessionFactory(); session = sessionFactory.openSession(); SchemaExport schemaExport = new SchemaExport(); schemaExport.setDelimiter(";"); schemaExport.setFormat(true); schemaExport.setManageNamespaces(true); schemaExport.setOutputFile("./ddl_skilldb.sql"); schemaExport.execute(EnumSet.of(TargetType.SCRIPT, TargetType.DATABASE, TargetType.STDOUT), SchemaExport.Action.CREATE, metaData.buildMetadata(registry), registry); log.info("Configuration succeed"); } catch (HibernateException e) { StandardServiceRegistryBuilder.destroy(registry); log.error("Configuration failed : {}", e); } }
From source file:com.jada.jpa.util.JpaSchemaExport.java
License:Open Source License
public void export() throws Exception { AnnotationConfiguration configuration = new AnnotationConfiguration(); configuration.setProperty("hibernate.hbm2ddl.auto", "create"); PersistenceLoader persistenceLoader = PersistenceLoader.getInstance(); Persistence persistence = persistenceLoader.getPersistence(); for (String className : persistence.getPersistenceUnit().getClassNames()) { Class<?> c = Class.forName(className); configuration.addAnnotatedClass(c); }//from w ww .j a v a 2s . c om configuration.setProperty("hibernate.dialect", dialectName); SchemaExport exporter = new SchemaExport(configuration); exporter.setDelimiter(";"); exporter.setOutputFile(fileName); boolean script = true; boolean export = false; boolean justDrop = false; boolean justCreate = false; exporter.execute(script, export, justDrop, justCreate); }
From source file:com.klistret.cmdb.utility.hibernate.CMDBDatabaseHelper.java
License:Open Source License
public void generateDatabaseSchema(String path, boolean display, boolean execute) { SchemaExport sSchemaExport = new SchemaExport(CMDBDatabaseHelper.sConfiguration); sSchemaExport.setOutputFile(path); sSchemaExport.setDelimiter(delimiter); sSchemaExport.create(display, execute); }
From source file:com.medigy.tool.persist.hibernate.ddl.GenerateDDLTask.java
License:Open Source License
public void execute() throws BuildException { if (hibernateConfigClass == null) throw new BuildException("hibernateConfigClass was not provided."); if (destDir == null) throw new BuildException("destDir was not provided."); try {/* ww w. j a va 2 s . c om*/ final SqlDataDefinitionFilter createFilter = (SqlDataDefinitionFilter) createSqlDataDefinitionFilterClass .newInstance(); log("Using create DDL filter " + createFilter.getClass().getName()); final SqlDataDefinitionFilter cleanFilter = (SqlDataDefinitionFilter) cleanSqlDataDefinitionFilterClass .newInstance(); log("Using clean DDL filter " + createFilter.getClass().getName()); final Configuration configuration = (Configuration) hibernateConfigClass.newInstance(); log("Using configuration " + configuration.getClass().getName()); if (hibernateConfigFile != null) { configuration.configure(hibernateConfigFile); log("Using configuration file " + hibernateConfigFile); } final Class[] dialects = HibernateDialectsCatalog.getDialects(); for (int i = 0; i < dialects.length; i++) { final Class dialectClass = dialects[i]; final Dialect dialect = (Dialect) dialectClass.newInstance(); final String dialectClassName = dialectClass.getName(); final String dialectShortName = dialectClass.getName() .substring(dialectClassName.lastIndexOf('.') + 1); final File dialectFile = new File(dialectShortName + destFileExtension); final Properties properties = new Properties(); properties.put(Environment.DIALECT, dialectClass.getName()); final File createFileFiltered = new File(destDir, createPrefix + dialectFile); final File createFileTmp = File.createTempFile(getClass().getName() + "-", "-" + createPrefix + dialectFile); createFileTmp.deleteOnExit(); final File cleanFileFiltered = new File(destDir, cleanPrefix + dialectFile); final File cleanFileTmp = File.createTempFile(getClass().getName() + "-", "-" + cleanPrefix + dialectFile); cleanFileTmp.deleteOnExit(); final SchemaExport exporter; try { // Generates CREATE statements including, quite stupidly, DROP statements which we'll filter later exporter = new SchemaExport(configuration, properties); exporter.setDelimiter(sqlStmtDelimiter); exporter.setOutputFile(createFileTmp.getAbsolutePath()); exporter.create(false, false); // Generates DROP statements only exporter.setOutputFile(cleanFileTmp.getAbsolutePath()); exporter.drop(false, false); } catch (HibernateException e) { log("Error generating DDL for " + dialectClassName + ": " + e.getMessage()); continue; } final SqlDataDefinitionFilterProcessor createFilterProcessor = new SqlDataDefinitionFilterProcessor( createFilter, configuration, dialect, createFileTmp, createFileFiltered, sqlStmtDelimiter); createFilterProcessor.execute(); final SqlDataDefinitionFilterProcessor cleanFilterProcessor = new SqlDataDefinitionFilterProcessor( cleanFilter, configuration, dialect, cleanFileTmp, cleanFileFiltered, sqlStmtDelimiter); cleanFilterProcessor.execute(); log("Generated create " + dialectShortName + " DDL in " + createFileFiltered.getAbsolutePath() + " (" + createFilterProcessor.getRemovedLines() + " lines removed, " + createFilterProcessor.getReplacedLines() + " lines replaced)"); log("Generated clean " + dialectShortName + " DDL in " + cleanFileFiltered.getAbsolutePath() + " (" + cleanFilterProcessor.getRemovedLines() + " lines removed, " + cleanFilterProcessor.getReplacedLines() + " lines replaced)"); } } catch (Exception e) { throw new BuildException(e); } }