Top Description Interfaces Classes
[default module]

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 org.hibernate.cfg.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:

  1. logical - Is the process of applying naming rules to determine the names of objects which were not explicitly given names in mapping. See org.hibernate.boot.model.naming.ImplicitNamingStrategy.
  2. 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 org.hibernate.boot.model.naming.PhysicalNamingStrategy.

Interface Summary

Modifier and TypeInterface and Description
public interface
public interface
ImplicitAnyDiscriminatorColumnNameSource

Context for determining the implicit name for an ANY mapping's discriminator column.

public interface
ImplicitAnyKeyColumnNameSource

Context for determining the implicit name for an ANY mapping's key column.

public interface
ImplicitBasicColumnNameSource

Context for determining the implicit name related to basic values.

public interface
ImplicitCollectionTableNameSource

Context for determining the implicit name for a collection table.

public interface
ImplicitConstraintNameSource

Common implicit name source traits for all constraint naming: FK, UK, index

public interface
ImplicitDiscriminatorColumnNameSource

Context for determining the implicit name of an entity's discriminator column.

public interface
ImplicitEntityNameSource

Context for determining the implicit name of an entity's primary table

public interface
public interface
ImplicitIdentifierColumnNameSource

Context for determining the implicit name of an entity's identifier column.

public interface
public interface
public interface
ImplicitJoinColumnNameSource

Context for determining the implicit name of a "join column" (think javax.persistence.JoinColumn).

public interface
ImplicitJoinTableNameSource

Context for determining the implicit name for a join table.

public interface
ImplicitMapKeyColumnNameSource

Context for determining the implicit name of a column used to back the key of a java.util.Map.

public interface
ImplicitNameSource

Common contract for all implicit naming sources

public interface
ImplicitNamingStrategy

Pluggable strategy for applying implicit naming rules when an explicit name is not given.

public interface
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).

public interface
ImplicitTenantIdColumnNameSource

Context for determining the implicit name of an entity's tenant identifier column.

public interface
public interface
NamingStrategyHelper

Helper contract for dealing with naming strategies.

public interface
PhysicalNamingStrategy

Pluggable strategy contract for applying physical naming rules for database object names.

Class Summary

Modifier and TypeClass and Description
public class
CamelCaseToUnderscoresNamingStrategy

Originally copied from Spring Boot as this strategy is popular there (original name is SpringPhysicalNamingStrategy).

public class
DatabaseIdentifier

Models an identifier (name), retrieved from the database.

public class
Identifier

Models an identifier (name), which may or may not be quoted.

public class
IllegalIdentifierException

Indicates an attempted use of a name that was deemed illegal

public class
ImplicitNamingStrategyComponentPathImpl

An ImplicitNamingStrategy implementation which uses full composite paths extracted from AttributePath, as opposed to just the terminal property part.

public class
ImplicitNamingStrategyJpaCompliantImpl

Implementation of the ImplicitNamingStrategy contract, generally preferring to conform to JPA standards.

public class
ImplicitNamingStrategyLegacyHbmImpl

Implements the original legacy naming behavior.

public class
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.

public class
public abstract class
ObjectNameNormalizer

Provides centralized normalization of how database object names are handled.

public class
PhysicalNamingStrategyStandardImpl

Standard implementation of the PhysicalNamingStrategy contract.