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 the
ImplicitNamingStrategy
contract, generally
preferring to conform to JPA standards.
For the legacy JPA-based naming standards initially implemented by Hibernate,
see/use ImplicitNamingStrategyLegacyJpaImpl
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionDetermine the column name related to the discriminator portion of anAny
mapping when no explicit column name is given usingColumn.name()
.Determine the join column name related to the key/id portion of anAny
mapping when no explicit join column name is given usingJoinColumn.name()
.Determine the column name when it is not explicitly specified usingColumn.name()
.Determine the name of a collection join table given the source naming information, when a name is not explicitly given.Determine the discriminator column name for the given entity when it is not explicitly specified usingDiscriminatorColumn.name()
.Determine the foreign key name when it is not explicitly specified usingForeignKey.name()
.Determine the name if the identifier column belonging to the given entity when it is not explicitly specified usingColumn.name()
.Determine the index name when it is not explicitly specified usingIndex.name()
.Determine the join column name when it is not explicitly specified usingJoinColumn.name()
.Determine the name of an association join table given the source naming information, when a name is not explicitly given.Determine the list index column name when it is not explicitly specified usingOrderColumn.name()
.Determine the map key column name when it is not explicitly specified usingMapKeyColumn.name()
.Determine the primary key join column name when it is not explicitly specified usingPrimaryKeyJoinColumn.name()
.Determine the implicit name of an entity's primary table.Determine the implicit name of the tenant identifier column belonging to a given entity when it is not explicitly specified usingColumn.name()
.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 Details
-
INSTANCE
-
-
Constructor Details
-
ImplicitNamingStrategyJpaCompliantImpl
public ImplicitNamingStrategyJpaCompliantImpl()
-
-
Method Details
-
determinePrimaryTableName
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
-
determineJoinTableName
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
-