[hibernate-dev] 6.0 - Type redesign
Steve Ebersole
steve at hibernate.org
Fri Jun 24 11:58:30 EDT 2016
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 <steve at 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
>
More information about the hibernate-dev
mailing list