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

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

Introduction

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

Prototype

public List getExceptions() 

Source Link

Document

Returns a List of all Exceptions which occurred during the export.

Usage

From source file:com.yahoo.elide.datastores.hibernate3.HibernateDataStoreSupplier.java

License:Apache License

@Override
public DataStore get() {
    // Add additional checks to our static check mappings map.
    // NOTE: This is a bit hacky. We need to do a major overhaul on our test architecture
    TestCheckMappings.MAPPINGS.put("filterCheck", Filtered.FilterCheck.class);
    TestCheckMappings.MAPPINGS.put("filterCheck3", Filtered.FilterCheck3.class);

    // method to force class initialization
    Configuration configuration = new Configuration();
    try {/*ww  w . j a v  a  2  s  .c  om*/
        ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class)
                .forEach(configuration::addAnnotatedClass);
    } catch (MappingException e) {
        throw new RuntimeException(e);
    }

    SessionFactory sessionFactory = configuration.configure("hibernate.cfg.xml")
            .setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread")
            .setProperty(Environment.URL,
                    "jdbc:mysql://localhost:" + System.getProperty("mysql.port", "3306")
                            + "/root?serverTimezone=UTC")
            .setProperty(Environment.USER, "root").setProperty(Environment.PASS, "root").buildSessionFactory();

    // create example tables from beans
    SchemaExport schemaExport = new SchemaExport(configuration).setHaltOnError(true);
    schemaExport.drop(false, true);
    schemaExport.execute(false, true, false, true);

    if (!schemaExport.getExceptions().isEmpty()) {
        throw new RuntimeException(schemaExport.getExceptions().toString());
    }

    return new HibernateStore(sessionFactory, true, ScrollMode.FORWARD_ONLY);
}

From source file:com.yahoo.elide.datastores.hibernate5.HibernateDataStoreSupplier.java

License:Apache License

@Override
public DataStore get() {
    // Add additional checks to our static check mappings map.
    // NOTE: This is a bit hacky. We need to do a major overhaul on our test architecture
    TestCheckMappings.MAPPINGS.put("filterCheck", Filtered.FilterCheck.class);
    TestCheckMappings.MAPPINGS.put("filterCheck3", Filtered.FilterCheck3.class);

    // method to force class initialization
    MetadataSources metadataSources = new MetadataSources(new StandardServiceRegistryBuilder()
            .configure("hibernate.cfg.xml").applySetting(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread")
            .applySetting(Environment.URL,
                    "jdbc:mysql://localhost:" + System.getProperty("mysql.port", "3306")
                            + "/root?serverTimezone=UTC")
            .applySetting(Environment.USER, "root").applySetting(Environment.PASS, "root").build());

    try {/*from   w w  w  .j a  v a  2  s. c o  m*/
        ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class)
                .forEach(metadataSources::addAnnotatedClass);
    } catch (MappingException e) {
        throw new RuntimeException(e);
    }

    MetadataImplementor metadataImplementor = (MetadataImplementor) metadataSources.buildMetadata();

    // create example tables from beans
    SchemaExport schemaExport = new SchemaExport(metadataImplementor); //.setHaltOnError(true);
    schemaExport.drop(false, true);
    schemaExport.execute(false, true, false, true);

    if (!schemaExport.getExceptions().isEmpty()) {
        throw new RuntimeException(schemaExport.getExceptions().toString());
    }

    return new HibernateStore(metadataImplementor.buildSessionFactory(), true, ScrollMode.FORWARD_ONLY);
}

From source file:com.yahoo.elide.datastores.hibernate5.HibernateEntityManagerDataStoreSupplier.java

License:Apache License

@Override
public DataStore get() {
    // Add additional checks to our static check mappings map.
    // NOTE: This is a bit hacky. We need to do a major overhaul on our test architecture
    TestCheckMappings.MAPPINGS.put("filterCheck", Filtered.FilterCheck.class);
    TestCheckMappings.MAPPINGS.put("filterCheck3", Filtered.FilterCheck3.class);

    Map<String, Object> options = new HashMap<>();
    ArrayList<Class> bindClasses = new ArrayList<>();

    try {/*w w  w. j  a  v a 2s .c o  m*/
        bindClasses.addAll(ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class));
    } catch (MappingException e) {
        throw new IllegalStateException(e);
    }

    options.put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver");
    options.put("javax.persistence.jdbc.url",
            JDBC_PREFIX + System.getProperty(MYSQL_PORT_PROPERTY, MYSQL_PORT) + JDBC_SUFFIX);
    options.put("javax.persistence.jdbc.user", ROOT);
    options.put("javax.persistence.jdbc.password", ROOT);
    options.put(AvailableSettings.LOADED_CLASSES, bindClasses);

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("elide-tests", options);
    HibernateEntityManager em = (HibernateEntityManager) emf.createEntityManager();

    // method to force class initialization
    MetadataSources metadataSources = new MetadataSources(new StandardServiceRegistryBuilder()
            .configure("hibernate.cfg.xml").applySetting(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread")
            .applySetting(Environment.URL,
                    JDBC_PREFIX + System.getProperty(MYSQL_PORT_PROPERTY, MYSQL_PORT) + JDBC_SUFFIX)
            .applySetting(Environment.USER, ROOT).applySetting(Environment.PASS, ROOT).build());

    try {
        ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class)
                .forEach(metadataSources::addAnnotatedClass);
    } catch (MappingException e) {
        throw new IllegalStateException(e);
    }

    MetadataImplementor metadataImplementor = (MetadataImplementor) metadataSources.buildMetadata();

    EnumSet<TargetType> type = EnumSet.of(TargetType.DATABASE);
    // create example tables from beans
    SchemaExport schemaExport = new SchemaExport();
    schemaExport.drop(type, metadataImplementor);
    schemaExport.execute(type, SchemaExport.Action.CREATE, metadataImplementor);

    if (!schemaExport.getExceptions().isEmpty()) {
        throw new IllegalStateException(schemaExport.getExceptions().toString());
    }

    return new AbstractHibernateStore.Builder(em).withScrollEnabled(true)
            .withScrollMode(ScrollMode.FORWARD_ONLY).build();
}

From source file:com.yahoo.elide.datastores.multiplex.bridgeable.BridgeableStoreSupplier.java

License:Apache License

@Override
public DataStore get() {
    // method to force class initialization
    MetadataSources metadataSources = new MetadataSources(new StandardServiceRegistryBuilder()
            .configure("hibernate.cfg.xml").applySetting(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread")
            .applySetting(Environment.URL,
                    "jdbc:mysql://localhost:" + System.getProperty("mysql.port", "3306")
                            + "/root?serverTimezone=UTC")
            .applySetting(Environment.USER, "root").applySetting(Environment.PASS, "root").build());

    metadataSources.addAnnotatedClass(HibernateUser.class);

    MetadataImplementor metadataImplementor = (MetadataImplementor) metadataSources.buildMetadata();

    // create example tables from beans
    SchemaExport schemaExport = new SchemaExport(metadataImplementor); //.setHaltOnError(true);
    schemaExport.drop(false, true);//from  w  ww. ja v  a  2  s  .  co  m
    schemaExport.execute(false, true, false, true);

    if (!schemaExport.getExceptions().isEmpty()) {
        throw new RuntimeException(schemaExport.getExceptions().toString());
    }

    LATEST_HIBERNATE_STORE = new HibernateStore.Builder(metadataImplementor.buildSessionFactory())
            .withScrollEnabled(true).withScrollMode(ScrollMode.FORWARD_ONLY).build();

    BridgeableRedisStore hbaseStore = new BridgeableRedisStore();

    return new MultiplexManager(LATEST_HIBERNATE_STORE, hbaseStore);
}

From source file:com.yahoo.elide.hibernate.AHibernateTest.java

License:Apache License

protected static void databaseManagerInit() {
    // method to force class initialization
    Configuration c = new Configuration();
    try {//  ww  w  .j  a  va2s .  com
        ClassScanner.getAnnotatedClasses(Parent.class.getPackage(), Entity.class).forEach(c::addAnnotatedClass);
    } catch (MappingException e) {
        throw new RuntimeException(e);
    }
    sessionFactory = c.configure("hibernate.cfg.xml")
            .setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "thread")
            .setProperty(Environment.URL,
                    "jdbc:mysql://localhost:" + System.getProperty("mysql.port", "3306") + "/root")
            .setProperty(Environment.USER, "root").setProperty(Environment.PASS, "root").buildSessionFactory();

    // create Example tables from beans
    SchemaExport se = new SchemaExport(c).setHaltOnError(true);
    se.drop(false, true);
    se.execute(false, true, false, true);

    if (se.getExceptions().size() != 0) {
        throw new RuntimeException("" + se.getExceptions());
    }

    hibernateManager = new HibernateManager(sessionFactory);
}

From source file:de.juplo.plugins.hibernate4.Hbm2DdlMojo.java

License:Apache License

@Override
public void execute() throws MojoFailureException, MojoExecutionException {
    if (skip) {// w  w  w.  jav  a2s.co  m
        getLog().info("Exectuion of hibernate4-maven-plugin:export was skipped!");
        project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
        return;
    }

    File dir = new File(outputDirectory);
    if (!dir.exists())
        throw new MojoExecutionException(
                "Cannot scan for annotated classes in " + outputDirectory + ": directory does not exist!");

    Map<String, String> md5s;
    boolean modified = false;
    File saved = new File(buildDirectory + File.separator + MD5S);

    if (saved.exists()) {
        try {
            FileInputStream fis = new FileInputStream(saved);
            ObjectInputStream ois = new ObjectInputStream(fis);
            md5s = (HashMap<String, String>) ois.readObject();
            ois.close();
        } catch (Exception e) {
            md5s = new HashMap<String, String>();
            getLog().warn("Cannot read timestamps from saved: " + e);
        }
    } else {
        md5s = new HashMap<String, String>();
        try {
            saved.createNewFile();
        } catch (IOException e) {
            getLog().warn("Cannot create saved for timestamps: " + e);
        }
    }

    ClassLoader classLoader = null;
    try {
        getLog().debug("Creating ClassLoader for project-dependencies...");
        List<String> classpathFiles = project.getCompileClasspathElements();
        if (scanTestClasses)
            classpathFiles.addAll(project.getTestClasspathElements());
        URL[] urls = new URL[classpathFiles.size()];
        for (int i = 0; i < classpathFiles.size(); ++i) {
            getLog().debug("Dependency: " + classpathFiles.get(i));
            urls[i] = new File(classpathFiles.get(i)).toURI().toURL();
        }
        classLoader = new URLClassLoader(urls, getClass().getClassLoader());
    } catch (Exception e) {
        getLog().error("Error while creating ClassLoader!", e);
        throw new MojoExecutionException(e.getMessage());
    }

    Set<Class<?>> classes = new TreeSet<Class<?>>(new Comparator<Class<?>>() {
        @Override
        public int compare(Class<?> a, Class<?> b) {
            return a.getName().compareTo(b.getName());
        }
    });

    try {
        AnnotationDB db = new AnnotationDB();
        getLog().info("Scanning directory " + outputDirectory + " for annotated classes...");
        URL dirUrl = dir.toURI().toURL();
        db.scanArchives(dirUrl);
        if (scanTestClasses) {
            dir = new File(testOutputDirectory);
            if (!dir.exists())
                throw new MojoExecutionException("Cannot scan for annotated test-classes in "
                        + testOutputDirectory + ": directory does not exist!");
            getLog().info("Scanning directory " + testOutputDirectory + " for annotated classes...");
            dirUrl = dir.toURI().toURL();
            db.scanArchives(dirUrl);
        }

        Set<String> classNames = new HashSet<String>();
        if (db.getAnnotationIndex().containsKey(Entity.class.getName()))
            classNames.addAll(db.getAnnotationIndex().get(Entity.class.getName()));
        if (db.getAnnotationIndex().containsKey(MappedSuperclass.class.getName()))
            classNames.addAll(db.getAnnotationIndex().get(MappedSuperclass.class.getName()));
        if (db.getAnnotationIndex().containsKey(Embeddable.class.getName()))
            classNames.addAll(db.getAnnotationIndex().get(Embeddable.class.getName()));

        MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
        for (String name : classNames) {
            Class<?> annotatedClass = classLoader.loadClass(name);
            classes.add(annotatedClass);
            InputStream is = annotatedClass.getResourceAsStream(annotatedClass.getSimpleName() + ".class");
            byte[] buffer = new byte[1024 * 4]; // copy data in 4MB-chunks
            int i;
            while ((i = is.read(buffer)) > -1)
                digest.update(buffer, 0, i);
            is.close();
            byte[] bytes = digest.digest();
            BigInteger bi = new BigInteger(1, bytes);
            String newMd5 = String.format("%0" + (bytes.length << 1) + "x", bi);
            String oldMd5 = !md5s.containsKey(name) ? "" : md5s.get(name);
            if (!newMd5.equals(oldMd5)) {
                getLog().debug("Found new or modified annotated class: " + name);
                modified = true;
                md5s.put(name, newMd5);
            } else {
                getLog().debug(oldMd5 + " -> class unchanged: " + name);
            }
        }
    } catch (ClassNotFoundException e) {
        getLog().error("Error while adding annotated classes!", e);
        throw new MojoExecutionException(e.getMessage());
    } catch (Exception e) {
        getLog().error("Error while scanning!", e);
        throw new MojoFailureException(e.getMessage());
    }

    if (classes.isEmpty())
        throw new MojoFailureException("No annotated classes found in directory " + outputDirectory);

    getLog().debug("Detected classes with mapping-annotations:");
    for (Class<?> annotatedClass : classes)
        getLog().debug("  " + annotatedClass.getName());

    Properties properties = new Properties();

    /** Try to read configuration from properties-file */
    try {
        File file = new File(hibernateProperties);
        if (file.exists()) {
            getLog().info("Reading properties from file " + hibernateProperties + "...");
            properties.load(new FileInputStream(file));
        } else
            getLog().info("No hibernate-properties-file found! (Checked path: " + hibernateProperties + ")");
    } catch (IOException e) {
        getLog().error("Error while reading properties!", e);
        throw new MojoExecutionException(e.getMessage());
    }

    /** Overwrite values from propertie-file or set, if given */
    if (driverClassName != null) {
        if (properties.containsKey(DRIVER_CLASS))
            getLog().debug("Overwriting property " + DRIVER_CLASS + "=" + properties.getProperty(DRIVER_CLASS)
                    + " with the value " + driverClassName);
        else
            getLog().debug("Using the value " + driverClassName);
        properties.setProperty(DRIVER_CLASS, driverClassName);
    }
    if (url != null) {
        if (properties.containsKey(URL))
            getLog().debug("Overwriting property " + URL + "=" + properties.getProperty(URL)
                    + " with the value " + url);
        else
            getLog().debug("Using the value " + url);
        properties.setProperty(URL, url);
    }
    if (username != null) {
        if (properties.containsKey(USERNAME))
            getLog().debug("Overwriting property " + USERNAME + "=" + properties.getProperty(USERNAME)
                    + " with the value " + username);
        else
            getLog().debug("Using the value " + username);
        properties.setProperty(USERNAME, username);
    }
    if (password != null) {
        if (properties.containsKey(PASSWORD))
            getLog().debug("Overwriting property " + PASSWORD + "=" + properties.getProperty(PASSWORD)
                    + " with the value " + password);
        else
            getLog().debug("Using the value " + password);
        properties.setProperty(PASSWORD, password);
    }
    if (hibernateDialect != null) {
        if (properties.containsKey(DIALECT))
            getLog().debug("Overwriting property " + DIALECT + "=" + properties.getProperty(DIALECT)
                    + " with the value " + hibernateDialect);
        else
            getLog().debug("Using the value " + hibernateDialect);
        properties.setProperty(DIALECT, hibernateDialect);
    }
    if (hibernateNamingStrategy != null) {
        if (properties.contains(NAMING_STRATEGY))
            getLog().debug("Overwriting property " + NAMING_STRATEGY + "="
                    + properties.getProperty(NAMING_STRATEGY) + " with the value " + hibernateNamingStrategy);
        else
            getLog().debug("Using the value " + hibernateNamingStrategy);
        properties.setProperty(NAMING_STRATEGY, hibernateNamingStrategy);
    }

    /** The generated SQL varies with the dialect! */
    if (md5s.containsKey(DIALECT)) {
        String dialect = properties.getProperty(DIALECT);
        if (md5s.get(DIALECT).equals(dialect))
            getLog().debug("SQL-dialect unchanged.");
        else {
            getLog().debug("SQL-dialect changed: " + dialect);
            modified = true;
            md5s.put(DIALECT, dialect);
        }
    } else {
        modified = true;
        md5s.put(DIALECT, properties.getProperty(DIALECT));
    }

    if (properties.isEmpty()) {
        getLog().error("No properties set!");
        throw new MojoFailureException("Hibernate-Configuration is missing!");
    }

    Configuration config = new Configuration();
    config.setProperties(properties);

    if (properties.containsKey(NAMING_STRATEGY)) {
        String namingStrategy = properties.getProperty(NAMING_STRATEGY);
        getLog().debug("Explicitly set NamingStrategy: " + namingStrategy);
        try {
            @SuppressWarnings("unchecked")
            Class<NamingStrategy> namingStrategyClass = (Class<NamingStrategy>) Class.forName(namingStrategy);
            config.setNamingStrategy(namingStrategyClass.newInstance());
        } catch (Exception e) {
            getLog().error("Error setting NamingStrategy", e);
            throw new MojoExecutionException(e.getMessage());
        }
    }

    getLog().debug("Adding annotated classes to hibernate-mapping-configuration...");
    for (Class<?> annotatedClass : classes) {
        getLog().debug("Class " + annotatedClass);
        config.addAnnotatedClass(annotatedClass);
    }

    Target target = null;
    try {
        target = Target.valueOf(this.target.toUpperCase());
    } catch (IllegalArgumentException e) {
        getLog().error("Invalid value for configuration-option \"target\": " + this.target);
        getLog().error("Valid values are: NONE, SCRIPT, EXPORT, BOTH");
        throw new MojoExecutionException("Invalid value for configuration-option \"target\"");
    }
    Type type = null;
    try {
        type = Type.valueOf(this.type.toUpperCase());
    } catch (IllegalArgumentException e) {
        getLog().error("Invalid value for configuration-option \"type\": " + this.type);
        getLog().error("Valid values are: NONE, CREATE, DROP, BOTH");
        throw new MojoExecutionException("Invalid value for configuration-option \"type\"");
    }

    if (target.equals(Target.SCRIPT) || target.equals(Target.NONE)) {
        project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
    }
    if (!modified && !target.equals(Target.SCRIPT) && !target.equals(Target.NONE) && !force) {
        getLog().info("No modified annotated classes found and dialect unchanged.");
        getLog().info("Skipping schema generation!");
        project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
        return;
    }

    getLog().info("Gathered hibernate-configuration (turn on debugging for details):");
    for (Entry<Object, Object> entry : properties.entrySet())
        getLog().info("  " + entry.getKey() + " = " + entry.getValue());

    Connection connection = null;
    try {
        /**
         * The connection must be established outside of hibernate, because
         * hibernate does not use the context-classloader of the current
         * thread and, hence, would not be able to resolve the driver-class!
         */
        switch (target) {
        case EXPORT:
        case BOTH:
            switch (type) {
            case CREATE:
            case DROP:
            case BOTH:
                Class driverClass = classLoader.loadClass(properties.getProperty(DRIVER_CLASS));
                getLog().debug("Registering JDBC-driver " + driverClass.getName());
                DriverManager.registerDriver(new DriverProxy((Driver) driverClass.newInstance()));
                getLog().debug("Opening JDBC-connection to " + properties.getProperty(URL) + " as "
                        + properties.getProperty(USERNAME) + " with password "
                        + properties.getProperty(PASSWORD));
                connection = DriverManager.getConnection(properties.getProperty(URL),
                        properties.getProperty(USERNAME), properties.getProperty(PASSWORD));
            }
        }
    } catch (ClassNotFoundException e) {
        getLog().error("Dependency for driver-class " + properties.getProperty(DRIVER_CLASS) + " is missing!");
        throw new MojoExecutionException(e.getMessage());
    } catch (Exception e) {
        getLog().error("Cannot establish connection to database!");
        Enumeration<Driver> drivers = DriverManager.getDrivers();
        if (!drivers.hasMoreElements())
            getLog().error("No drivers registered!");
        while (drivers.hasMoreElements())
            getLog().debug("Driver: " + drivers.nextElement());
        throw new MojoExecutionException(e.getMessage());
    }

    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    MavenLogAppender.startPluginLog(this);
    try {
        /**
         * Change class-loader of current thread, so that hibernate can
         * see all dependencies!
         */
        Thread.currentThread().setContextClassLoader(classLoader);

        SchemaExport export = new SchemaExport(config, connection);
        export.setOutputFile(outputFile);
        export.setDelimiter(delimiter);
        export.setFormat(format);
        export.execute(target, type);

        for (Object exception : export.getExceptions())
            getLog().debug(exception.toString());
    } finally {
        /** Stop Log-Capturing */
        MavenLogAppender.endPluginLog(this);

        /** Restore the old class-loader (TODO: is this really necessary?) */
        Thread.currentThread().setContextClassLoader(contextClassLoader);

        /** Close the connection */
        try {
            if (connection != null)
                connection.close();
        } catch (SQLException e) {
            getLog().error("Error while closing connection: " + e.getMessage());
        }
    }

    /** Write md5-sums for annotated classes to file */
    try {
        FileOutputStream fos = new FileOutputStream(saved);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(md5s);
        oos.close();
        fos.close();
    } catch (Exception e) {
        getLog().error("Cannot write md5-sums to file: " + e);
    }
}

From source file:edu.ku.brc.specify.tools.SpecifySchemaGenerator.java

License:Open Source License

/**
 * Creates the Schema./*  w w  w. j  a  va 2s  . c  om*/
 * @param driverInfo the driver info to use
 * @param connectionStr the connection string for creating or opening a database
 * @param hostname the hostname (localhost)
 * @param databaseName the database name
 * @param user the username
 * @param passwd the password (clear text)
 * @param doUpdate tells it to update the schema instead of creating it
 */
protected static void doGenSchema(final DatabaseDriverInfo driverInfo, final String connectionStr, // might be a create or an open connection string
        final String user, final String passwd, final boolean doUpdate) {
    // setup the Hibernate configuration
    Configuration hibCfg = new AnnotationConfiguration();
    hibCfg.setProperties(getHibernateProperties(driverInfo, connectionStr, user, passwd, doUpdate));
    hibCfg.configure();

    if (doUpdate) {
        SchemaUpdate schemaUpdater = new SchemaUpdate(hibCfg);

        log.info("Updating schema");
        //System.exit(0);
        boolean doScript = false;
        log.info("Updating the DB schema");
        schemaUpdater.execute(doScript, true);

        log.info("DB schema Updating completed");

        // log the exceptions that occurred
        List<?> exceptions = schemaUpdater.getExceptions();
        for (Object o : exceptions) {
            Exception e = (Exception) o;
            log.error(e.getMessage());
        }
    } else {
        SchemaExport schemaExporter = new SchemaExport(hibCfg);
        schemaExporter.setDelimiter(";");

        log.info("Generating schema");
        //System.exit(0);
        boolean printToScreen = false;
        boolean exportToDb = true;
        boolean justDrop = false;
        boolean justCreate = true;
        log.info("Creating the DB schema");
        schemaExporter.execute(printToScreen, exportToDb, justDrop, justCreate);

        log.info("DB schema creation completed");

        // log the exceptions that occurred
        List<?> exceptions = schemaExporter.getExceptions();
        for (Object o : exceptions) {
            Exception e = (Exception) o;
            log.error(e.getMessage());
        }
    }
}

From source file:lucee.runtime.orm.hibernate.HibernateSessionFactory.java

License:Open Source License

private static void schemaExport(Log log, Configuration configuration, DatasourceConnection dc,
        SessionFactoryData data) throws PageException, SQLException, IOException {
    ORMConfiguration ormConf = data.getORMConfiguration();

    if (ORMConfiguration.DBCREATE_NONE == ormConf.getDbCreate()) {
        return;/*from   w  w w .j  a  v  a2  s .  com*/
    } else if (ORMConfiguration.DBCREATE_DROP_CREATE == ormConf.getDbCreate()) {
        SchemaExport export = new SchemaExport(configuration);
        export.setHaltOnError(true);

        export.execute(false, true, false, false);
        printError(log, data, export.getExceptions(), false);
        executeSQLScript(ormConf, dc);
    } else if (ORMConfiguration.DBCREATE_UPDATE == ormConf.getDbCreate()) {
        SchemaUpdate update = new SchemaUpdate(configuration);
        update.setHaltOnError(true);
        update.execute(false, true);
        printError(log, data, update.getExceptions(), false);
    }
}

From source file:net.commerce.zocalo.hibernate.HibernateSingletonTest.java

License:Open Source License

public void xtestSchemaUpdate() {
    Configuration config = new Configuration();
    HibernateTestUtil.addClasses(config);
    SchemaExport export = new SchemaExport(config);
    export.create(true, false);/*  w w  w  .j  a  v a 2 s. c o  m*/

    assertEquals(0, export.getExceptions().size());
}

From source file:org.bonitasoft.engine.business.data.impl.SchemaManager.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<Exception> drop(final Set<String> managedClasses) {
    final SchemaExport export = new SchemaExport(buildConfiguration(managedClasses));
    export.drop(Target.EXPORT);//from w  w w. jav  a 2s  .co  m
    return export.getExceptions();
}