Seam下面使用Hibernate的命名策略
在components.xml下增加如下配置
<component name="namingStrategy" class="com.kingdom.gemini.common.utils.KSNamingStrategy" /> <persistence:hibernate-session-factory name="hibernateSessionFactory"> <persistence:naming-strategy>#{namingStrategy}</persistence:naming-strategy> </persistence:hibernate-session-factory>
这里是个简要的命名策略
public class KSNamingStrategy extends ImprovedNamingStrategy {
private static final long serialVersionUID = -1802297815137696772L;
@Override
public String collectionTableName(String ownerEntity,
String ownerEntityTable, String associatedEntity,
String associatedEntityTable, String propertyName) {
return tableName(ownerEntityTable + "_" + associatedEntityTable);
}
@Override
public String propertyToColumnName(String propertyName) {
return "c_" + super.propertyToColumnName(propertyName).toUpperCase();
}
@Override
public String classToTableName(String className) {
return "tbl_" + super.classToTableName(className).toUpperCase();
}
}