= 5.0 Migration Guide
:toc:

This guide discusses migration from Hibernate ORM version 4.3 to version 5.0.  For migration from
earlier versions, see any other pertinent migration guides as well.

* Re-purposing of Configuration.  Configuration, historically, allowed users to iteratively add
settings and mappings in any order and to query the state of settings and mapping information in the middle
of that process.  Which meant that building the mapping information could not effectively rely on any settings
being available.  This lead to many limitations and problems.  Quite a few methods have been removed from
Configuration.  todo : topical guide on bootstrapping, reference that here.

* Migrated `org.hibernate.metamodel.spi.TypeContributor` and `org.hibernate.metamodel.spi.TypeContributions`
to `org.hibernate.boot.model.TypeContributor` and `org.hibernate.boot.model.TypeContributions`

* Naming strategies - discuss split.

* implicit column names, add to strategy?  Currently these are handled "specially":
** PrimaryKeyJoinColumn
*** joined-subclass key column(s) - JPA defaults
*** secondary table key column(s) - JPA defaults
*** one-to-one key column(s) - JPA defaults
** entity simple identifier column - JPA defaults
** entity version - currently uses #determineAttributeColumnName
** collection-id column name - currently hard-coded as "id"
** list-index column name - currently hard-coded as "idx"

* hibernate.jdbc.batch_versioned_data default value is true, Oracle dialects set this property to false except for Oracle12cDialect