【问题标题】:Hibernate schema migration set naming strategyHibernate 架构迁移集命名策略
【发布时间】:2016-04-05 08:37:33
【问题描述】:

我有一个默认使用SpringNamingStrategy 的Spring JPA 应用程序,它与ImprovedNamingStrategy 非常接近。

我正在编写一个帮助程序,它使用休眠类来生成用于模式更新的脚本。

    public class MigrationHelper {

        public static void main(String[] args) throws SQLException {
            DataSource dataSource = DataSourceBuilder.create()
                    .driverClassName("oracle.jdbc.driver.OracleDriver")
                    .url("jdbc:oracle:thin:@localhost:1521:ORCL")
                    .username("mqcompare")
                    .password("mqcompare")
                    .build();

                LocalSessionFactoryBuilder sessionFactory = new LocalSessionFactoryBuilder(dataSource);
                sessionFactory.scanPackages("com.company.mqmsgcom.entity");
                //this doesen't work
                sessionFactory.setProperty("hibernate.ejb.naming_strategy", "org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy");
                Dialect dialect = new Oracle10gDialect();
                DatabaseMetadata metadata = new DatabaseMetadata(dataSource.getConnection(), dialect, sessionFactory);
                List<SchemaUpdateScript> scripts = sessionFactory.generateSchemaUpdateScriptList(dialect, metadata);

                Formatter formatter = FormatStyle.DDL.getFormatter();
                for (SchemaUpdateScript script : scripts) {
                   System.err.println(formatter.format(script.getScript()) + ";");
                }
        }
    }

脚本参考:here

如何在这段代码中设置命名策略?

编辑:Hibernate 版本是 4.3.11 Final。

【问题讨论】:

    标签: java spring hibernate


    【解决方案1】:

    hibernate.ejb.naming_strategy 用于JPA。您可以通过LocalSessionFactoryBuilder#setNamingStrategy()设置命名策略。

    看起来,Hibernate 4 中没有将命名策略设置为 Configuration 作为属性的属性。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 2017-01-02
      • 2019-04-16
      • 2016-01-11
      • 2015-11-16
      • 2018-05-10
      • 1970-01-01
      • 2020-06-06
      相关资源
      最近更新 更多