How to use SchemaExportTool with JPA and Hibernate 4.3

纵然是瞬间 提交于 2019-12-01 18:28:11

I ran into the same Problem. I ended up by using the internal PersistenceXmlParser of Hibernate to access information in the persistence.xml file and creating the Configuration object manually:

public static void main(String[] args) {

    PersistenceXmlParser parser = new PersistenceXmlParser(new ClassLoaderServiceImpl(), PersistenceUnitTransactionType.RESOURCE_LOCAL);
    List<ParsedPersistenceXmlDescriptor> allDescriptors = parser.doResolve(new HashMap<>());

    for (ParsedPersistenceXmlDescriptor descriptor : allDescriptors) {

        Configuration cfg = new Configuration();
        cfg.setProperty("hibernate.hbm2ddl.auto", "create");
        cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
        cfg.setProperty("hibernate.id.new_generator_mappings", "true");

        List<String> managedClassNames = descriptor.getManagedClassNames();
        for (String className : managedClassNames) {
            try {
                cfg.addAnnotatedClass(Class.forName(className));
            } catch (ClassNotFoundException e) {
                System.out.println("Class not found: " + className);
            }
        }

        SchemaExport export = new SchemaExport(cfg);
        export.setDelimiter(";");
        export.setOutputFile("C:\\dev\\" + descriptor.getName() + "_create_schema.sql");
        export.setFormat(true);
        export.execute(true, false, false, false);

    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!