Example usage for org.hibernate.tool.hbm2ddl SchemaExport setOutputFile

List of usage examples for org.hibernate.tool.hbm2ddl SchemaExport setOutputFile

Introduction

In this page you can find the example usage for org.hibernate.tool.hbm2ddl SchemaExport setOutputFile.

Prototype

public SchemaExport setOutputFile(String filename) 

Source Link

Document

For generating a export script file, this is the file which will be written.

Usage

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);
    }
}