【问题标题】:Where is the EnversSchemaGenerator in Hibernate 5.1?Hibernate 5.1 中的 EnversSchemaGenerator 在哪里?
【发布时间】:2016-09-16 14:56:55
【问题描述】:

Envers 5.1 documentation 声明您应该使用org.hibernate.envers.tools.hbm2ddl.EnversSchemaGenerator 以编程方式导出数据库架构。

但是这堂课已经不在了!真的;-)

也许它没有调整为schema management changes? 如何用 Hibernate 5.1 替换该类?

【问题讨论】:

    标签: java hibernate generator database-schema hibernate-envers


    【解决方案1】:

    要以编程方式导出架构,另一种方式是

    ServiceRegistry serviceRegistry =(StandardServiceRegistryImpl) new StandardServiceRegistryBuilder()
                    .configure("hibernate.cfg.xml")
                    .build();
    MetadataImplementor metadata = (MetadataImplementor) new   MetadataSources(serviceRegistry).buildMetadata();
    SchemaExport schemaExport = new SchemaExport(metadata);
    schemaExport.setOutputFile("hbm2schema.sql");
    schemaExport.create(true, true);
    ( (StandardServiceRegistryImpl) serviceRegistry ).destroy();
    

    【讨论】:

      【解决方案2】:

      在以前的 Hibernate 版本中,您必须分别从实体和 Envers 生成 sql。

      但现在不再需要了。只需像提到的那样生成它们,envers 将与它们一起生成。 (_AUTH 表)

      【讨论】:

        【解决方案3】:

        如果你想在 Hibernate 5.xx 中导出 sql 文件中的表可以使用以下代码

        StandardServiceRegistryBuilder registryBuilder = new StandardServiceRegistryBuilder().applySetting("hibernate.dialect", "org.hibernate.spatial.dialect.postgis.PostgisDialect"); // dialect
        
        MetadataSources metadataSources = new MetadataSources(registryBuilder.build());
        
        PathMatchingResourcePatternResolver resourceLoader = new PathMatchingResourcePatternResolver();
        new LocalSessionFactoryBuilder(null, resourceLoader, metadataSources).scanPackages("com.xxx");
        
        Metadata metadata = metadataSources.buildMetadata();
        
        new SchemaExport().setFormat(true).setOutputFile("export.sql").createOnly(EnumSet.of(TargetType.STDOUT, TargetType.SCRIPT), metadata);
        

        【讨论】:

        • 虽然此代码 sn-p 可以解决问题,但 including an explanation 有助于提高您的回复质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
        猜你喜欢
        • 2011-04-10
        • 1970-01-01
        • 2016-07-30
        • 1970-01-01
        • 2015-11-17
        • 2011-11-15
        • 1970-01-01
        • 2014-08-15
        • 1970-01-01
        相关资源
        最近更新 更多