org.hibernate.cfg

Interface NamingStrategy

Known Implementing Classes:
DefaultNamingStrategy, ImprovedNamingStrategy

public interface NamingStrategy

A set of rules for determining the physical column and table names given the information in the mapping document. May be used to implement project-scoped naming standards for database objects. #propertyToTableName(String, String) should be replaced by collectionTableName(String,String,String,String,String)
Authors:
Gavin King
Emmanuel Bernard
See Also:
DefaultNamingStrategy, ImprovedNamingStrategy

Method Summary

String
classToTableName(String className)
Return a table name for an entity class
String
collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable, String propertyName)
Return a collection table name ie an association having a join table
String
columnName(String columnName)
Alter the column name given in the mapping document
String
foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName)
Return the foreign key column name for the given parameters
String
joinKeyColumnName(String joinedColumn, String joinedTable)
Return the join key column name ie a FK column used in a JOINED strategy or for a secondary table
String
logicalCollectionColumnName(String columnName, String propertyName, String referencedColumn)
Returns the logical foreign key column name used to refer to this column in the mapping metadata
String
logicalCollectionTableName(String tableName, String ownerEntityTable, String associatedEntityTable, String propertyName)
Returns the logical collection table name used to refer to a table in the mapping metadata
String
logicalColumnName(String columnName, String propertyName)
Return the logical column name used to refer to a column in the metadata (like index, unique constraints etc) A full bijection is required between logicalNames and physical ones logicalName have to be case insersitively unique for a given table
String
propertyToColumnName(String propertyName)
Return a column name for a property path expression
String
tableName(String tableName)
Alter the table name given in the mapping document

Method Details

classToTableName

public String classToTableName(String className)
Return a table name for an entity class
Parameters:
className - the fully-qualified class name
Returns:
a table name

collectionTableName

public String collectionTableName(String ownerEntity,
                                  String ownerEntityTable,
                                  String associatedEntity,
                                  String associatedEntityTable,
                                  String propertyName)
Return a collection table name ie an association having a join table
Parameters:
ownerEntity -
ownerEntityTable - owner side table name
associatedEntity -
associatedEntityTable - reverse side table name if any
propertyName - collection role

columnName

public String columnName(String columnName)
Alter the column name given in the mapping document
Parameters:
columnName - a column name
Returns:
a column name

foreignKeyColumnName

public String foreignKeyColumnName(String propertyName,
                                   String propertyEntityName,
                                   String propertyTableName,
                                   String referencedColumnName)
Return the foreign key column name for the given parameters
Parameters:
propertyName - the property name involved
propertyEntityName -
propertyTableName - the property table name involved (logical one)
referencedColumnName - the referenced column name involved (logical one)

joinKeyColumnName

public String joinKeyColumnName(String joinedColumn,
                                String joinedTable)
Return the join key column name ie a FK column used in a JOINED strategy or for a secondary table
Parameters:
joinedColumn - joined column name (logical one) used to join with
joinedTable - joined table name (ie the referenced table) used to join with

logicalCollectionColumnName

public String logicalCollectionColumnName(String columnName,
                                          String propertyName,
                                          String referencedColumn)
Returns the logical foreign key column name used to refer to this column in the mapping metadata
Parameters:
columnName - given column name in the metadata if any
propertyName - property name
referencedColumn - referenced column name (logical one) in the join

logicalCollectionTableName

public String logicalCollectionTableName(String tableName,
                                         String ownerEntityTable,
                                         String associatedEntityTable,
                                         String propertyName)
Returns the logical collection table name used to refer to a table in the mapping metadata
Parameters:
tableName - the metadata explicit name
ownerEntityTable - owner table entity table name (logical one)
associatedEntityTable - reverse side table name if any (logical one)
propertyName - collection role

logicalColumnName

public String logicalColumnName(String columnName,
                                String propertyName)
Return the logical column name used to refer to a column in the metadata (like index, unique constraints etc) A full bijection is required between logicalNames and physical ones logicalName have to be case insersitively unique for a given table
Parameters:
columnName - given column name if any
propertyName - property name of this column

propertyToColumnName

public String propertyToColumnName(String propertyName)
Return a column name for a property path expression
Parameters:
propertyName - a property path
Returns:
a column name

tableName

public String tableName(String tableName)
Alter the table name given in the mapping document
Parameters:
tableName - a table name
Returns:
a table name