【发布时间】:2011-05-17 19:39:52
【问题描述】:
是否可以覆盖 JPA/Hibernate 中的表名以便为所有项目实体添加公共前缀?例如,能够为所有 JBPM 5 表加上“JBPM5_”前缀。
已接受答案的示例:
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);
}
}
【问题讨论】:
-
你的意思是除了
@Table注解之外? -
是的,除了 Table 注释。我实际上是指一个 3rd 方项目,所以只有配置是可行的(我无法触摸编译的 java 源)。
-
而且在单个类上使用注释来实施站点范围的策略既乏味又容易出错