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

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

Introduction

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

Prototype

public SchemaExport setDelimiter(String delimiter) 

Source Link

Document

Set the end of statement delimiter

Usage

From source file:org.olat.core.commons.persistence.DatabaseSetup.java

License:Apache License

/**
 * Write database configuration to file. Includes differences to existing database. Filename: "database/setupDatabase.sql"
 *//*from  w w  w.  ja  v a 2s . co m*/
private static void exportDDLtoFile() {
    String outputFile = "database/setupDatabase.sql";

    boolean script = true; // write DDL
    boolean export = false; // don't update databse
    try {
        SchemaExport se = new SchemaExport(cf);
        se.setOutputFile(outputFile);
        se.setDelimiter(";");
        se.create(script, export);
    } catch (Exception e) {
        log.error("DDL export to file failed: Reason: ", e);
    }
}

From source file:org.openbp.server.persistence.hibernate.HibernateDDLGenerator.java

License:Apache License

/**
 * Generates the DDL files.//from   ww  w  . j a  va  2s .com
 */
public void generate() {
    ProcessServer processServer = new ProcessServerFactory().createProcessServer();

    PersistenceContextProvider provider = processServer.getEngine().getPersistenceContextProvider();
    if (provider == null) {
        String msg = LogUtil.error(getClass(), "No persistence context provider configured.");
        System.err.println(msg);
        System.exit(1);
        return;
    }
    if (!(provider instanceof HibernatePersistenceContextProvider)) {
        String msg = LogUtil.error(getClass(),
                "Configured persistence context provider no no Hibernate provider (class $0).",
                provider.getClass().getName());
        System.err.println(msg);
        System.exit(1);
        return;
    }

    Configuration configuration = ((HibernatePersistenceContextProvider) provider)
            .createHibernateConfiguration();

    if (dialect != null) {
        String adapterClassName = null;
        if (dialect.indexOf('.') >= 0) {
            adapterClassName = dialect;
        } else {
            adapterClassName = "org.hibernate.dialect." + dialect + "Dialect";
        }
        configuration.setProperty("hibernate.dialect", adapterClassName);
    }

    SchemaExport se = new SchemaExport(configuration);
    se.setFormat(true);
    se.setDelimiter(";");

    String outputFile;

    if ((outputFile = prepareOutputFile(getDdlCreateFileName())) != null) {
        se.setOutputFile(outputFile);
        se.execute(false, false, false, true);
    }

    if ((outputFile = prepareOutputFile(getDdlDropFileName())) != null) {
        se.setOutputFile(outputFile);
        se.execute(false, false, true, false);
    }
}

From source file:org.opentides.persistence.hibernate.MultiTenantSchemaUpdate.java

License:Apache License

/**
 * This is the helper function that initializes the schema and tables.
 * Initialization is as follows: //from w w  w .  j  ava  2 s .  co m
 *    (1) Get the latest initialization sql script. Execute the sql script.
 *    (2) If there is no initialization script, use the hibernate SchemaExport.
 *    
 * @param tenantId
 */
private void initializeSchema(Configuration cfg, Connection connection, String schema) {
    // check if there SQL file under the sslScript folder
    boolean initialized = false;

    if (ddlScript != null && ddlScript.exists()) {
        _log.info("Initializing schema [" + schema + "] using DDL script [" + ddlScript.getFilename() + "].");
        InputStream inputStream = null;
        try {
            inputStream = ddlScript.getInputStream();
            Scanner f = new Scanner(inputStream);
            StringBuilder stmt = new StringBuilder();
            while (f.hasNext()) {
                String line = f.nextLine();
                // ignore comment
                if (line.startsWith("--"))
                    continue;
                stmt.append(" ").append(line);
                if (line.endsWith(";")) {
                    // end of statement, execute then clear
                    connection.createStatement().execute(stmt.toString());
                    System.out.println(stmt.toString());
                    stmt.setLength(0);
                }
            }
            f.close();
            initialized = true;
        } catch (SQLException e) {
            _log.error("Failed to execute sql script for initialization", e);
        } catch (IOException e) {
            _log.error("Failed to read sql script for initialization", e);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                }
            }
        }
    }

    if (!initialized) {
        _log.info("Initializing schema [" + schema + "] using SchemaExport. ");
        SchemaExport export = new SchemaExport(cfg, connection);
        if (this.logDdl) {
            String dir = ddlLogs + "/" + DateUtil.convertShortDate(new Date());
            _log.info("DDL logs can be found in " + dir + "/schema-" + schema + ".sql");
            FileUtil.createDirectory(dir);
            export.setOutputFile(dir + "/schema-" + schema + ".sql");
            export.setDelimiter(";");
        }
        export.execute(this.logDdl, true, false, true);
    }

}

From source file:org.spliffy.server.db.utils.SchemaExporter.java

License:Open Source License

/**
 * Method that actually creates the file.
 *
 * @param dbDialect to use//from  w w w  . j a va 2 s .co  m
 */
public void generate() throws Exception {
    if (!outputDir.exists()) {
        outputDir.mkdirs();
    }
    AnnotationConfiguration cfg;
    cfg = new AnnotationConfiguration();
    cfg.setProperty("hibernate.hbm2ddl.auto", "create");
    cfg.setNamingStrategy(new org.hibernate.cfg.ImprovedNamingStrategy());

    for (Class<Object> clazz : getClasses(packageName)) {
        cfg.addAnnotatedClass(clazz);
    }
    for (Dialect d : Dialect.values()) {
        cfg.setProperty("hibernate.dialect", d.getDialectClass());
        SchemaExport export = new SchemaExport(cfg);
        export.setDelimiter(";");
        File fOut = new File(outputDir, d.name().toLowerCase() + ".sql");
        export.setOutputFile(fOut.getAbsolutePath());
        export.execute(true, false, false, false);
    }
}

From source file:org.springframework.cloud.dataflow.server.repository.SchemaGenerationTests.java

License:Apache License

private void generateDdlFiles(String dialect, File tempDir, PersistenceUnitInfo persistenceUnitInfo) {
    logger.info("Generating DDL script for " + dialect);

    final MetadataSources metadata = new MetadataSources(new StandardServiceRegistryBuilder()
            .applySetting("hibernate.dialect", "org.hibernate.dialect." + dialect + "Dialect")
            .applySetting("hibernate.physical_naming_strategy", SpringPhysicalNamingStrategy.class.getName())
            .applySetting("hibernate.implicit_naming_strategy", SpringImplicitNamingStrategy.class.getName())
            .build());/* w  w w .  j  a v a  2  s.  co m*/

    for (String clazz : persistenceUnitInfo.getManagedClassNames()) {
        logger.info(clazz);
        metadata.addAnnotatedClassName(clazz);
    }

    final SchemaExport export;
    try {
        export = new SchemaExport();
        export.setDelimiter(";");
        export.setFormat(true);
        export.setOutputFile(new File(tempDir, "schema-" + dialect.toLowerCase() + ".sql").getAbsolutePath());
    } catch (HibernateException e) {
        throw new IllegalStateException(e);
    }
    EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.SCRIPT);
    export.execute(targetTypes, SchemaExport.Action.BOTH, metadata.buildMetadata());
}

From source file:org.transitime.applications.SchemaGenerator.java

License:Open Source License

/**
 * Method that actually creates the file.
 * //from w  ww.  j a  v a  2 s.c  om
 * @param dbDialect to use
 */
private void generate(Dialect dialect) {
    cfg.setProperty("hibernate.dialect", dialect.getDialectClass());

    SchemaExport export = new SchemaExport(cfg);
    export.setDelimiter(";");

    // Determine file name. Use "ddl_" plus dialect name such as mysql or
    // oracle plus the package name with "_" replacing "." such as
    // org_transitime_db_structs .
    String packeNameSuffix = packageName.replace(".", "_");
    String outputFilename = (outputDirectory != null ? outputDirectory + "/" : "") + "ddl_"
            + dialect.name().toLowerCase() + "_" + packeNameSuffix + ".sql";

    export.setOutputFile(outputFilename);

    // Export, but only to an SQL file. Don't actually modify the database
    System.out.println("Writing file " + outputFilename);
    export.execute(true, false, false, false);

    // Get rid of unneeded SQL for dropping tables and keys and such
    trimCruftFromFile(outputFilename);
}

From source file:org.wise.util.DBInitExporter.java

License:Open Source License

/**
 * Exports schema definitions to the specified outputFilename.
 * @param springConfigClassname Spring configuration file
 * @param outputFilename output file/* w  w w  . ja v  a 2s.c o  m*/
 */
public static void exportSchemaToFile(String springConfigClassname, String outputFilename)
        throws ClassNotFoundException, IOException {
    ConfigurableApplicationContext applicationContext = null;
    try {
        SpringConfiguration springConfig = (SpringConfiguration) BeanUtils
                .instantiateClass(Class.forName(springConfigClassname));
        applicationContext = new ClassPathXmlApplicationContext(
                springConfig.getRootApplicationContextConfigLocations());

        final boolean printScriptToConsole = false, exportScriptToDb = false, justDrop = false,
                justCreate = true;
        final SchemaExport schemaExport = new SchemaExport(MetadataProvider.getMetadata());
        schemaExport.setDelimiter(";").setFormat(true).setHaltOnError(true).setOutputFile(outputFilename);
        schemaExport.execute(printScriptToConsole, exportScriptToDb, justDrop, justCreate);

        // now append initial data, which we read in from import.sql
        File initialDataFile = new File("src/main/resources/import.sql");
        FileInputStream initialDataFileInputStream = new FileInputStream(initialDataFile);
        BufferedReader initialDataFileReader = new BufferedReader(
                new InputStreamReader(initialDataFileInputStream));

        boolean doAppend = true;
        BufferedWriter outputFileWriter = new BufferedWriter(new FileWriter(outputFilename, doAppend));

        String aLine;
        while ((aLine = initialDataFileReader.readLine()) != null) {
            // Process each line and add append to output file, unless it's a hsqldb-specific line
            if (!aLine.contains("SET DATABASE REFERENTIAL INTEGRITY")) {
                outputFileWriter.write(aLine);
                outputFileWriter.newLine();
            }
        }

        initialDataFileReader.close(); // close the buffer reader
        outputFileWriter.close(); // close buffer writer
    } finally {
        if (applicationContext != null) {
            applicationContext.close();
        }
    }
}

From source file:persistence.DBUtility.java

public static void schemaExport() {
    Configuration config = new Configuration().configure("hibernate.cfg.xml");
    SchemaExport exporter = new SchemaExport(config);
    exporter.setDelimiter(";");
    exporter.setOutputFile("pentamatrix-2.sql");
    exporter.execute(Target.EXPORT, SchemaExport.Type.BOTH);
}

From source file:QueryStore.HibernateSchemaGenerator.java

License:Apache License

public static void main(String[] args) {
    Configuration config = new Configuration();

    //don't forget to get the right dialect for Oracle, MySQL, etc
    config.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
    config.addAnnotatedClass(Query.class);
    config.addAnnotatedClass(Filter.class);
    config.addAnnotatedClass(Sorting.class);
    SchemaExport export = new EnversSchemaGenerator(config).export()
            .setOutputFile("QueryStore/additional_configuration/Query-Hibernate-schema.sql");
    export.setDelimiter(";");
    export.execute(true, false, false, false);
}

From source file:ru.appliedtech.storage.hibernate.DDLGeneratorUtil.java

License:Open Source License

public static void execute(String dialectClassName, String packageName, String outputFilePath) {
    Configuration configuration = new Configuration();
    configuration.addPackage(packageName);
    configuration.setProperty(Environment.DIALECT, dialectClassName);
    Collection<Class<? extends Object>> classes = getPackageClasses(packageName);
    for (Class<?> entityClass : classes) {
        configuration.addAnnotatedClass(entityClass);
    }/*w  w  w .  j a  v  a2  s  .  c o m*/
    SchemaExport schemaExport = new SchemaExport(configuration);
    schemaExport.setDelimiter(";");
    schemaExport.setOutputFile(outputFilePath);
    schemaExport.create(true, false);
}