Package org.hibernate.boot.model.naming
Represents a proposed new approach to allowing hooks into the process of determining
the name of database objects (tables, columns, constraints, etc). Historically this is
the role of the
NamingStrategy
contract. However, NamingStrategy
suffers from many design flaws that are just not addressable in any sort of backwards
compatible manner. So this proposed approach is essentially a clean-room impl based
on lessons learned through NamingStrategy.
Naming is split here into 2 main pieces:-
logical - Is the process of applying naming rules to determine the names
of objects which were not explicitly given names in mapping. See
ImplicitNamingStrategy
. -
physical - Is the process of applying naming rules to transform the logical
name into the actual (physical) name that will be used in the database. Rules here
might be things like using standardized abbreviations ("NUMBER" -> "NUM"), applying
identifier length shortening, etc. See
PhysicalNamingStrategy
.
-
Interface Summary Interface Description EntityNaming ImplicitAnyDiscriminatorColumnNameSource Context for determining the implicit name for an ANY mapping's discriminator column.ImplicitAnyKeyColumnNameSource Context for determining the implicit name for an ANY mapping's key column.ImplicitBasicColumnNameSource Context for determining the implicit name related to basic values.ImplicitCollectionTableNameSource Context for determining the implicit name for a collection table.ImplicitConstraintNameSource Common implicit name source traits for all constraint naming: FK, UK, indexImplicitDiscriminatorColumnNameSource Context for determining the implicit name of an entity's discriminator column.ImplicitEntityNameSource Context for determining the implicit name of an entity's primary tableImplicitForeignKeyNameSource ImplicitIdentifierColumnNameSource Context for determining the implicit name of an entity's identifier column.ImplicitIndexColumnNameSource ImplicitIndexNameSource ImplicitJoinColumnNameSource Context for determining the implicit name of a "join column" (thinkJoinColumn
).ImplicitJoinTableNameSource Context for determining the implicit name for a join table.ImplicitMapKeyColumnNameSource Context for determining the implicit name of a column used to back the key of aMap
.ImplicitNameSource Common contract for all implicit naming sourcesImplicitNamingStrategy Pluggable strategy for applying implicit naming rules when an explicit name is not given.ImplicitPrimaryKeyJoinColumnNameSource Used to help determine the implicit name of columns which are part of a primary-key, well simultaneously being part of a foreign-key (join).ImplicitTenantIdColumnNameSource Context for determining the implicit name of an entity's tenant identifier column.ImplicitUniqueKeyNameSource NamingStrategyHelper Helper contract for dealing with naming strategies.PhysicalNamingStrategy Pluggable strategy contract for applying physical naming rules for database object names. -
Class Summary Class Description CamelCaseToUnderscoresNamingStrategy Originally copied from Spring Boot as this strategy is popular there (original name is SpringPhysicalNamingStrategy).DatabaseIdentifier Models an identifier (name), retrieved from the database.Identifier Models an identifier (name), which may or may not be quoted.ImplicitNamingStrategyComponentPathImpl An ImplicitNamingStrategy implementation which uses full composite paths extracted from AttributePath, as opposed to just the terminal property part.ImplicitNamingStrategyJpaCompliantImpl Implementation of the ImplicitNamingStrategy contract, generally preferring to conform to JPA standards.ImplicitNamingStrategyLegacyHbmImpl Implements the original legacy naming behavior.ImplicitNamingStrategyLegacyJpaImpl Implementation of the ImplicitNamingStrategy contract which conforms to the naming rules initially implemented by Hibernate for JPA 1.0, prior to many things being clarified.NamingHelper ObjectNameNormalizer Provides centralized normalization of how database object names are handled.PhysicalNamingStrategyStandardImpl Standard implementation of the PhysicalNamingStrategy contract. -
Enum Summary Enum Description ImplicitJoinColumnNameSource.Nature -
Exception Summary Exception Description IllegalIdentifierException Indicates an attempted use of a name that was deemed illegal