我有一个Spring JPA应用程序默认使用SpringNamingStrategy
,非常接近ImprovedNamingStrategy
。
我正在编写一个使用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 Final。
答案 0 :(得分:1)
hibernate.ejb.naming_strategy
用于JPA
。您可以按LocalSessionFactoryBuilder#setNamingStrategy()
设置命名策略。
看起来,Hibernate 4中没有一个属性可以将命名策略设置为Configuration
作为属性。