是否可以在JPA / Hibernate中覆盖表名称,以便为所有项目实体添加通用前缀?例如,能够通过“ JBPM5_”前缀为所有JBPM 5表添加前缀。
可接受答案的示例:
public class JBPM5NamingStrategy extends ImprovedNamingStrategy { public String classToTableName(String className) { return StringHelper.unqualify(className); } public String propertyToColumnName(String propertyName) { return propertyName; } public String tableName(String tableName) { return "JBPM5_" + tableName; } public String columnName(String columnName) { return columnName; } public String propertyToTableName(String className, String propertyName) { return "JBPM5_" + classToTableName(className) + '_' + propertyToColumnName(propertyName); } }
一次重命名所有表的一种方法是实现自己的namingStrategy(的实现org.hibernate.cfg.NamingStrategy)。
org.hibernate.cfg.NamingStrategy
使用的NamingStrategy在persistence.xml中由
<property name="hibernate.ejb.naming_strategy" value="com.example.MyNamingStrategy" />