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:

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