[hibernate-dev] 6.0 - JPA metamodel code

Steve Ebersole steve at hibernate.org
Fri Apr 28 12:44:53 EDT 2017

Currently Hibernate implements the JPA metamodel contracts with a series of
wrapper objects defined in the `org.hibernate.metamodel` package.  This is
non-ideal because it is a wrapper approach rather than integrating the JPA
contracts into our runtime model which we are doing in these 6.0 changes
(Navigable ties in these JPA contracts).

Based on that I propose that we simply "drop" the `org.hibernate.metamodel`
package.  The only question is what "drop" means here.  Does it mean just
remove these from 6.0 (possibly retro-deprecating on 5.2)?  Or does it mean
we follow the deprecate-and-shadow approach?

To me this really comes down to whether we expect or ever expected users to
access stuff from this `org.hibernate.metamodel` package.  Considering that
these are defined specifically in `org.hibernate.metamodel.internal` (an
internal package) I would argue not, and that we should just remove them
from 6.0 and replace in usage with Navigable and friends.

Any objections?

More information about the hibernate-dev mailing list