I worked on this some more today and wanted to pass along a few high-points I started to see emerge...
The idea of "Type scoping" is very important and central. The basic idea is to have a single point for the creation and caching of Type instances. Specifically this Scope would define just 2 methods and would be passed to any Type that requested access to the Scope (however we decide that "requested access" should look: annotation, interface, etc): 1. It would give access to the org.hibernate.engine.spi.Mapping reference which is implemented for both boot-time (org.hibernate.boot.Metadata) and run-time (SessionFactory, though I'd like to move that to the SessionFactory's Metamodel delegate). 2. It would give access to SessionFactory, but an exception would be thrown if the #resolveFactory method is called before the SessionFactory is bound to the Scope. (1) is the new pieces I am proposing. (2) is what Scope does today. The discussion about removing the Type method overloads around passing Mapping and SessionFactory as arguments is something I'd like to hear people's opinions about. In a way I do think we ought to look at this as a chance to GetTypeRight(tm). Essentially there is a lot of change here not matter what, so we ought to not be afraid to design in a clean-room for Type-related code in 6.0. On Wed, Jun 22, 2016 at 11:54 AM Steve Ebersole <st...@hibernate.org> wrote: > I started a wiki discussing the proposal for the type system redesign. > Let's get discussions about it starter sooner rather than later. Thanks! > > https://github.com/hibernate/hibernate-orm/wiki/6.0---Type-redesign > _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev