【发布时间】:2015-05-27 08:18:37
【问题描述】:
是否可以通过hibernate动态设置表名和实体类中提到的带有注释的字段。我发现这是一种叫做命名策略的东西,但我不太理解。 首先,我想知道动态定义表名和字段名的可能解决方案是什么? 其次,谁能给我解释一下ImprovedNamingStrategy类的主要作用,并举一个使用例子。
【问题讨论】:
是否可以通过hibernate动态设置表名和实体类中提到的带有注释的字段。我发现这是一种叫做命名策略的东西,但我不太理解。 首先,我想知道动态定义表名和字段名的可能解决方案是什么? 其次,谁能给我解释一下ImprovedNamingStrategy类的主要作用,并举一个使用例子。
【问题讨论】:
来自“Java Persistence with hibernate” - 您可以扩展ImprovedNamingStrategy 类(实现NamingStrategy 接口并提供默认行为)并覆盖方法
public String tableName(String tableName) {
return "YourTableName";
}
还有其他方法。 希望这会有所帮助!
【讨论】:
如果你使用的是 spring ,你可以看看 SpringNamingStrategy 。它已经扩展了 ImprovementNamingStrategy 。如果需要你可以重写 classToTableName 方法。如果你使用的是 spring-boot ,这个类名可以通过属性 spring 外部化.jpa.hibernate.naming-strategy 。 http://docs.spring.io/autorepo/docs/spring-boot/1.1.5.RELEASE/api/org/springframework/boot/orm/jpa/SpringNamingStrategy.html#SpringNamingStrategy()
希望这会有所帮助。
【讨论】: