2016-04-05 3 views
0

У меня есть приложение Spring JPA, которое по умолчанию использует SpringNamingStrategy, что очень близко к 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

Как я могу установить стратегию именования в этом коде?

Редактировать: версия спящего режима - 4.3.11 Final.

ответ

1

hibernate.ejb.naming_strategy Используется для JPA. Вы можете установить стратегию именования на LocalSessionFactoryBuilder#setNamingStrategy().

Похоже, в Hibernate 4 нет собственности, чтобы установить стратегию именования Configuration как собственности.

Смежные вопросы