2016-04-05 14 views
0

私は、SpringNamingStrategyをデフォルトで使用するSpring JPAアプリケーションを持っています。これは、ImprovedNamingStrategyに非常に近いものです。Hibernateスキーマ移行セットの命名方法

私は、スキーマ更新用のスクリプトを生成するために、hibernateクラスを使用するヘルパーを作成しています。

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です。

答えて

1

hibernate.ejb.naming_strategyは、JPAに使用されます。名前付け方針はLocalSessionFactoryBuilder#setNamingStrategy()で設定できます。

Hibernate 4には、ネーミング戦略をプロパティとしてConfigurationに設定するプロパティはありません。