Java 类org.hibernate.tool.hbm2ddl.SchemaValidator 实例源码

项目:cacheonix-core    文件:TestSchemaTools.java   
public void testSchemaTools() throws Exception{
    // database schema have been created thanks to the setUp method
    // we have 2 schemas SA et SB, SB must be set as the default schema
    // used by hibernate hibernate.default_schema SB
    SchemaExport se = new SchemaExport(getCfg());
    se.create(true,true);

    // here we modify the generated table in order to test SchemaUpdate
    Session session = openSession();
    Connection conn = session.connection();
    Statement stat = conn.createStatement();
    stat.execute("ALTER TABLE \"SB\".\"Team\" DROP COLUMN name ");

    // update schema
    SchemaUpdate su = new SchemaUpdate(getCfg());
    su.execute(true,true);

    // we can run schema validation. Note that in the setUp method a *wrong* table
    // has been created with different column names
    // if schema validator chooses the bad db schema, then the testcase will fail (exception)
    SchemaValidator sv = new SchemaValidator(getCfg());
    sv.validate();

    // it's time to clean our database
    se.drop(true,true);

    // then the schemas and false table.

    stat.execute("DROP TABLE \"SA\".\"Team\" ");
    stat.execute(" DROP SCHEMA sa ");
    stat.execute("DROP SCHEMA sb ");
    stat.close();
    session.close();
}
项目:cacheonix-core    文件:TestSchemaTools.java   
public void testSchemaToolsNonQuote() throws Exception{
    // database schema have been created thanks to the setUp method
    // we have 2 schemas SA et SB, SB must be set as the default schema
    // used by hibernate hibernate.default_schema SB
    SchemaExport se = new SchemaExport(getCfg());
    se.create(true,true);

    // here we modify the generated table in order to test SchemaUpdate
    Session session = openSession();
    Connection conn = session.connection();
    Statement stat = conn.createStatement();
    stat.execute("ALTER TABLE \"SB\".\"TEAM\" DROP COLUMN xname ");

    // update schema
    SchemaUpdate su = new SchemaUpdate(getCfg());
    su.execute(true,true);

    // we can run schema validation. Note that in the setUp method a *wrong* table
    // has been created with different column names
    // if schema validator chooses the bad db schema, then the testcase will fail (exception)
    SchemaValidator sv = new SchemaValidator(getCfg());
    sv.validate();

    // it's time to clean our database
    se.drop(true,true);

    // then the schemas and false table.

    stat.execute("DROP TABLE \"SA\".\"Team\" ");
    stat.execute(" DROP SCHEMA sa ");
    stat.execute("DROP SCHEMA sb ");
    stat.close();
    session.close();
}
项目:cacheonix-core    文件:TestSchemaTools.java   
public void testFailingQuoteValidation() throws Exception{
    // database schema have been created thanks to the setUp method
    // we have 2 schemas SA et SB, SB must be set as the default schema
    // used by hibernate hibernate.default_schema SB
    SchemaExport se = new SchemaExport(getCfg());
    se.create(true,true);

    // here we modify the generated table in order to test SchemaUpdate
    Session session = openSession();
    Connection conn = session.connection();
    Statement stat = conn.createStatement();
    stat.execute("ALTER TABLE \"SB\".\"Team\" DROP COLUMN name ");

    // update schema
    //SchemaUpdate su = new SchemaUpdate(getCfg());
    //su.execute(true,true);

    try {
        SchemaValidator sv = new SchemaValidator(getCfg());
        sv.validate();
        fail("should fail since we mutated the current schema.");
    } catch(HibernateException he) {

    }

    // it's time to clean our database
    se.drop(true,true);

    // then the schemas and false table.

    stat.execute("DROP TABLE \"SA\".\"Team\" ");
    stat.execute(" DROP SCHEMA sa ");
    stat.execute("DROP SCHEMA sb ");
    stat.close();
    session.close();
}
项目:cacheonix-core    文件:TestSchemaTools.java   
public void testFailingNonQuoteValidation() throws Exception{
    // database schema have been created thanks to the setUp method
    // we have 2 schemas SA et SB, SB must be set as the default schema
    // used by hibernate hibernate.default_schema SB
    SchemaExport se = new SchemaExport(getCfg());
    se.create(true,true);

    // here we modify the generated table in order to test SchemaUpdate
    Session session = openSession();
    Connection conn = session.connection();
    Statement stat = conn.createStatement();
    stat.execute("ALTER TABLE \"SB\".\"TEAM\" DROP COLUMN xname ");

    // update schema
    //SchemaUpdate su = new SchemaUpdate(getCfg());
    //su.execute(true,true);

    try {
        SchemaValidator sv = new SchemaValidator(getCfg());
        sv.validate();
        fail("should fail since we mutated the current schema.");
    } catch(HibernateException he) {

    }

    // it's time to clean our database
    se.drop(true,true);

    // then the schemas and false table.

    stat.execute("DROP TABLE \"SA\".\"Team\" ");
    stat.execute(" DROP SCHEMA sa ");
    stat.execute("DROP SCHEMA sb ");
    stat.close();
    session.close();
}
项目:cosmo    文件:DbInitializer.java   
/**
 * Schema validation
 */
private void validateSchema() {
    try {
        StandardServiceRegistry registry = localSessionFactory.getConfiguration()
                .getStandardServiceRegistryBuilder().build();
        MetadataSources sources = new MetadataSources(registry);
        sources.addPackage("org.unitedinternet.cosmo.model.hibernate");
        Metadata metadata = sources.buildMetadata(registry);
        new SchemaValidator().validate(metadata);
        LOG.info("schema validation passed");
    } catch (HibernateException e) {
        LOG.error("error validating schema", e);
        throw e;
    }
}
项目:windup-rulesets    文件:SchemaDDLGenerator.java   
public static void execute(Dialect dialect, Class<?>... classes) {
    Configuration configuration = new Configuration();
    SchemaExport schemaExport = new SchemaExport(configuration);
    SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
    try {
        new SchemaValidator(configuration).validate();
    }
    catch (Exception e) {
        logger.error("Failed create the table: " + e.getMessage());
    }
}