package ns; public class NamingStrategy implements org.hibernate.cfg.NamingStrategy{ private static final long serialVersionUID = 1L; private static final String CT_PREFIX = "ctn_"; private static final String TN_PREFIX = "tn_"; private static final String PC_PREFIX = "pc_"; private static final String CN_PREFIX = "cn_"; private static final String FK_PREFIX = "fk_"; private static final String COL_PREFIX = "col_"; private static final String JKCN_PREFIX = "jkcn_"; public String classToTableName(String className) { return CT_PREFIX + unqualify(className); } public String propertyToColumnName(String propertyName) { return PC_PREFIX + unqualify(propertyName); } public String tableName(String tableName) { return TN_PREFIX + tableName; } public String collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable, String propertyName) { return COL_PREFIX + unqualify(ownerEntity) + "_"+ associatedEntity+ "_" + associatedEntityTable + "_" + unqualify( associatedEntity ) + "_" +propertyName; } public String columnName(String columnName) { return CN_PREFIX + columnName; } public String joinKeyColumnName(String joinedColumn, String joinedTable) { return JKCN_PREFIX + joinedColumn + '_' + joinedTable; } public String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName) { return FK_PREFIX + propertyName + "_"+ unqualify(propertyEntityName) + "_" + propertyTableName + "_" + referencedColumnName; } private String unqualify(String s) { if (s != null) return s;//.replaceAll("\\.", ""); return "null"; } public String logicalCollectionColumnName(String arg0, String arg1, String arg2) { return (arg0 + "_" + arg1 + "_" + arg2); } public String logicalCollectionTableName(String arg0, String arg1, String arg2, String arg3) { return (arg0 + "_" + arg1 + "_" + arg2 + "_" + arg3).toUpperCase(); } public String logicalColumnName(String arg0, String arg1) { return (arg0 + "_" + arg1).toUpperCase(); } }