PhysicalNamingStrategy bean仅通过配置文件实例化

时间:2018-03-01 20:17:10

标签: java spring hibernate jpa spring-boot

我在使用Hibernate的Spring应用程序中有一个自定义命名策略:

public class MyCustomPhysicalNamingStrategy implements PhysicalNamingStrategy {

  @Override
  public Identifier toPhysicalTableName(Identifier identifier, JdbcEnvironment jdbcEnvironment) {
    return Identifier.toIdentifier("my_custom_table_name");
  }

  // ...

}

The Spring documentation说我可以通过设置spring.jpa.hibernate.naming.physical-strategy(工作正常)或者像这样来告诉Hibernate使用它:

  

或者,如果应用程序上下文中有ImplicitNamingStrategyPhysicalNamingStrategy个bean,Hibernate将自动配置为使用它们

我需要使用第二种方法,因为我需要将Spring的一些信息传递给我的命名策略。但是,我无法让它发挥作用。

我在以下配置类中创建bean:

@Configuration
public class PersistenceConfiguration {
  @Bean
  public PhysicalNamingStrategy physicalNamingStrategy() {
    return new MyCustomPhysicalNamingStrategy();
  }
}

我在这里缺少什么?

提前致谢。

编辑:我在Spring Boot / Spring JPA 1.5.9.RELEASE上,它给了我Hibernate核心v.5.0.12.Final和Hibernate JPA API 2.1。