对于Hibernate
4.x,可以使用自定义命名策略,该策略在运行时动态生成表名。服务器名称可以由系统属性提供,因此您的策略应如下所示:
public class ServerAwareNamingStrategy extends ImprovedNamingStrategy { @Override public String classToTableName(String className) { String tableName = super.classToTableName(className); return resolveServer(tableName); } private String resolveServer(String tableName) { StringBuilder tableNameBuilder = new StringBuilder(); tableNameBuilder.append(tableName); tableNameBuilder.append("_"); tableNameBuilder.append(System.getProperty("SERVER_NAME")); return tableNameBuilder.toString(); }}并提供命名策略作为Hibernate配置属性:
<property name="hibernate.ejb.naming_strategy" value="my.package.ServerAwareNamingStrategy"/>



