【发布时间】: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。
【问题讨论】: