Package org.hibernate.boot.model.naming
Class ImplicitNamingStrategyJpaCompliantImpl
- java.lang.Object
-
- org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
-
- All Implemented Interfaces:
Serializable
,ImplicitNamingStrategy
- Direct Known Subclasses:
ImplicitNamingStrategyComponentPathImpl
,ImplicitNamingStrategyLegacyHbmImpl
,ImplicitNamingStrategyLegacyJpaImpl
public class ImplicitNamingStrategyJpaCompliantImpl extends Object implements ImplicitNamingStrategy, Serializable
Implementation of theImplicitNamingStrategy
contract, generally preferring to conform to JPA standards.For the legacy JPA-based naming standards initially implemented by Hibernate, see/use
ImplicitNamingStrategyLegacyJpaImpl
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ImplicitNamingStrategy
INSTANCE
-
Constructor Summary
Constructors Constructor Description ImplicitNamingStrategyJpaCompliantImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Identifier
determineAnyDiscriminatorColumnName(ImplicitAnyDiscriminatorColumnNameSource source)
Determine the column name related to the discriminator portion of anAny
mapping when no explicit column name is given usingColumn.name()
.Identifier
determineAnyKeyColumnName(ImplicitAnyKeyColumnNameSource source)
Determine the join column name related to the key/id portion of anAny
mapping when no explicit join column name is given usingJoinColumn.name()
.Identifier
determineBasicColumnName(ImplicitBasicColumnNameSource source)
Determine the column name when it is not explicitly specified usingColumn.name()
.Identifier
determineCollectionTableName(ImplicitCollectionTableNameSource source)
Determine the name of a collection join table given the source naming information, when a name is not explicitly given.Identifier
determineDiscriminatorColumnName(ImplicitDiscriminatorColumnNameSource source)
Determine the discriminator column name for the given entity when it is not explicitly specified usingDiscriminatorColumn.name()
.Identifier
determineForeignKeyName(ImplicitForeignKeyNameSource source)
Determine the foreign key name when it is not explicitly specified usingForeignKey.name()
.Identifier
determineIdentifierColumnName(ImplicitIdentifierColumnNameSource source)
Determine the name if the identifier column belonging to the given entity when it is not explicitly specified usingColumn.name()
.Identifier
determineIndexName(ImplicitIndexNameSource source)
Determine the index name when it is not explicitly specified usingIndex.name()
.Identifier
determineJoinColumnName(ImplicitJoinColumnNameSource source)
Determine the join column name when it is not explicitly specified usingJoinColumn.name()
.Identifier
determineJoinTableName(ImplicitJoinTableNameSource source)
Determine the name of an association join table given the source naming information, when a name is not explicitly given.Identifier
determineListIndexColumnName(ImplicitIndexColumnNameSource source)
Determine the list index column name when it is not explicitly specified usingOrderColumn.name()
.Identifier
determineMapKeyColumnName(ImplicitMapKeyColumnNameSource source)
Determine the map key column name when it is not explicitly specified usingMapKeyColumn.name()
.Identifier
determinePrimaryKeyJoinColumnName(ImplicitPrimaryKeyJoinColumnNameSource source)
Determine the primary key join column name when it is not explicitly specified usingPrimaryKeyJoinColumn.name()
.Identifier
determinePrimaryTableName(ImplicitEntityNameSource source)
Determine the implicit name of an entity's primary table.Identifier
determineTenantIdColumnName(ImplicitTenantIdColumnNameSource source)
Determine the implicit name of the tenant identifier column belonging to a given entity when it is not explicitly specified usingColumn.name()
.Identifier
determineUniqueKeyName(ImplicitUniqueKeyNameSource source)
Determine the unique key name when it is not explicitly specified usingUniqueConstraint.name()
.protected Identifier
toIdentifier(String stringForm, MetadataBuildingContext buildingContext)
Easy hook to build an Identifier using the keyword safe IdentifierHelper.protected String
transformAttributePath(AttributePath attributePath)
For JPA standards we typically need the unqualified name.protected String
transformEntityName(EntityNaming entityNaming)
-
-
-
Field Detail
-
INSTANCE
public static final ImplicitNamingStrategy INSTANCE
-
-
Method Detail
-
determinePrimaryTableName
public Identifier determinePrimaryTableName(ImplicitEntityNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the implicit name of an entity's primary table.- Specified by:
determinePrimaryTableName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit table name.
-
transformEntityName
protected String transformEntityName(EntityNaming entityNaming)
-
determineJoinTableName
public Identifier determineJoinTableName(ImplicitJoinTableNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the name of an association join table given the source naming information, when a name is not explicitly given. This method is called for any sort of association with a join table, no matter what the logical cardinality.- Specified by:
determineJoinTableName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit table name.
-
determineCollectionTableName
public Identifier determineCollectionTableName(ImplicitCollectionTableNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the name of a collection join table given the source naming information, when a name is not explicitly given. This method is called only for collections of basic or embeddable values, and never for associations.- Specified by:
determineCollectionTableName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit table name.
-
determineIdentifierColumnName
public Identifier determineIdentifierColumnName(ImplicitIdentifierColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the name if the identifier column belonging to the given entity when it is not explicitly specified usingColumn.name()
.- Specified by:
determineIdentifierColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined identifier column name
-
determineDiscriminatorColumnName
public Identifier determineDiscriminatorColumnName(ImplicitDiscriminatorColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the discriminator column name for the given entity when it is not explicitly specified usingDiscriminatorColumn.name()
.- Specified by:
determineDiscriminatorColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit discriminator column name
-
determineTenantIdColumnName
public Identifier determineTenantIdColumnName(ImplicitTenantIdColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the implicit name of the tenant identifier column belonging to a given entity when it is not explicitly specified usingColumn.name()
.- Specified by:
determineTenantIdColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined tenant identifier column name
-
determineBasicColumnName
public Identifier determineBasicColumnName(ImplicitBasicColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the column name when it is not explicitly specified usingColumn.name()
.- Specified by:
determineBasicColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit column name.
-
determineJoinColumnName
public Identifier determineJoinColumnName(ImplicitJoinColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the join column name when it is not explicitly specified usingJoinColumn.name()
.In
hbm.xml
terms, this would be a<key/>
defined for a collection or the column associated with a many-to-one.- Specified by:
determineJoinColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined join column name
-
determinePrimaryKeyJoinColumnName
public Identifier determinePrimaryKeyJoinColumnName(ImplicitPrimaryKeyJoinColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the primary key join column name when it is not explicitly specified usingPrimaryKeyJoinColumn.name()
.In
hbm.xml
terms, this would be a<key/>
defined for a<join/>
or a<joined-subclass/>
.- Specified by:
determinePrimaryKeyJoinColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined column name
-
determineAnyDiscriminatorColumnName
public Identifier determineAnyDiscriminatorColumnName(ImplicitAnyDiscriminatorColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the column name related to the discriminator portion of anAny
mapping when no explicit column name is given usingColumn.name()
.- Specified by:
determineAnyDiscriminatorColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined column name
-
determineAnyKeyColumnName
public Identifier determineAnyKeyColumnName(ImplicitAnyKeyColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the join column name related to the key/id portion of anAny
mapping when no explicit join column name is given usingJoinColumn.name()
.- Specified by:
determineAnyKeyColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined identifier column name
-
determineMapKeyColumnName
public Identifier determineMapKeyColumnName(ImplicitMapKeyColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the map key column name when it is not explicitly specified usingMapKeyColumn.name()
.- Specified by:
determineMapKeyColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit column name.
-
determineListIndexColumnName
public Identifier determineListIndexColumnName(ImplicitIndexColumnNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the list index column name when it is not explicitly specified usingOrderColumn.name()
.- Specified by:
determineListIndexColumnName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The implicit column name.
-
determineForeignKeyName
public Identifier determineForeignKeyName(ImplicitForeignKeyNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the foreign key name when it is not explicitly specified usingForeignKey.name()
.- Specified by:
determineForeignKeyName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined foreign key name
-
determineUniqueKeyName
public Identifier determineUniqueKeyName(ImplicitUniqueKeyNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the unique key name when it is not explicitly specified usingUniqueConstraint.name()
.- Specified by:
determineUniqueKeyName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined foreign key name
-
determineIndexName
public Identifier determineIndexName(ImplicitIndexNameSource source)
Description copied from interface:ImplicitNamingStrategy
Determine the index name when it is not explicitly specified usingIndex.name()
.- Specified by:
determineIndexName
in interfaceImplicitNamingStrategy
- Parameters:
source
- The source information- Returns:
- The determined foreign key name
-
transformAttributePath
protected String transformAttributePath(AttributePath attributePath)
For JPA standards we typically need the unqualified name. However, a more usable impl tends to use the whole path. This method provides an easy hook for subclasses to accomplish that- Parameters:
attributePath
- The attribute path- Returns:
- The extracted name
-
toIdentifier
protected Identifier toIdentifier(String stringForm, MetadataBuildingContext buildingContext)
Easy hook to build an Identifier using the keyword safe IdentifierHelper.- Parameters:
stringForm
- The String form of the namebuildingContext
- Access to the IdentifierHelper- Returns:
- The identifier
-
-