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
NamingStrategycontract. 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
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
Interface Summary Interface Description EntityNaming ImplicitAnyDiscriminatorColumnNameSourceContext for determining the implicit name for an ANY mapping's discriminator column. ImplicitAnyKeyColumnNameSourceContext for determining the implicit name for an ANY mapping's key column. ImplicitBasicColumnNameSourceContext for determining the implicit name related to basic values. ImplicitCollectionTableNameSourceContext for determining the implicit name for a collection table. ImplicitConstraintNameSourceCommon implicit name source traits for all constraint naming: FK, UK, index ImplicitDiscriminatorColumnNameSourceContext for determining the implicit name of an entity's discriminator column. ImplicitEntityNameSourceContext for determining the implicit name of an entity's primary table ImplicitForeignKeyNameSource ImplicitIdentifierColumnNameSourceContext for determining the implicit name of an entity's identifier column. ImplicitIndexColumnNameSource ImplicitIndexNameSource ImplicitJoinColumnNameSourceContext for determining the implicit name of a "join column" (think
ImplicitJoinTableNameSourceContext for determining the implicit name for a join table. ImplicitMapKeyColumnNameSourceContext for determining the implicit name of a column used to back the key of a
ImplicitNameSourceCommon contract for all implicit naming sources ImplicitNamingStrategyPluggable strategy for applying implicit naming rules when an explicit name is not given. ImplicitPrimaryKeyJoinColumnNameSourceUsed to help determine the implicit name of columns which are part of a primary-key, well simultaneously being part of a foreign-key (join). ImplicitTenantIdColumnNameSourceContext for determining the implicit name of an entity's tenant identifier column. ImplicitUniqueKeyNameSource NamingStrategyHelperHelper contract for dealing with naming strategies. PhysicalNamingStrategyPluggable strategy contract for applying physical naming rules for database object names.
Class Summary Class Description CamelCaseToUnderscoresNamingStrategyOriginally copied from Spring Boot as this strategy is popular there (original name is SpringPhysicalNamingStrategy). DatabaseIdentifierModels an identifier (name), retrieved from the database. IdentifierModels an identifier (name), which may or may not be quoted. ImplicitNamingStrategyComponentPathImplAn ImplicitNamingStrategy implementation which uses full composite paths extracted from AttributePath, as opposed to just the terminal property part. ImplicitNamingStrategyJpaCompliantImplImplementation of the ImplicitNamingStrategy contract, generally preferring to conform to JPA standards. ImplicitNamingStrategyLegacyHbmImplImplements the original legacy naming behavior. ImplicitNamingStrategyLegacyJpaImplImplementation 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 ObjectNameNormalizerProvides centralized normalization of how database object names are handled. PhysicalNamingStrategyStandardImplStandard implementation of the PhysicalNamingStrategy contract.
Enum Summary Enum Description ImplicitJoinColumnNameSource.Nature
Exception Summary Exception Description IllegalIdentifierExceptionIndicates an attempted use of a name that was deemed illegal