2016-10-20 21:27 GMT+03:00 Steve Ebersole <steve(a)hibernate.org>:
> A type should be able to define classes Interfaces and Abstract
> classes that it can handle in their Java types.
> This will enable implementing handlers for things like javax.script.*
> objects that can have different providers, thus different class names
> of the final object.
> That would have to be a secondary check if no match is found by Java
> class name, because it's slower and dangerous when binding
> parameters to a query.
I am not sure what you are talking about here.
> If stored as Class object references, they would have to be held in
> WeakReference objects tied to a ReferenceQueue, so as not to
> prevent garbage collection when a context is unloaded in a multi-context
> server.
>
> If stored as Strings, there would have to be a call to Class.forName
> for each, which if successful would have to check isInstance on the
> object or isAssignableFrom on it's class (when evaluating DB model).
Again, not really sure what you are talking about here. I guess you mean in
some "cache" based on the Java type handled?
I am talking about type registration and resolution in both. Right now,
they're being registered in
org.hibernate.boot.model.process.spi.MetadataBuildingProcess#handleTypes
which creates a BasicTypeRegistry for resolving them.
In the current state, they can only be registered by full class name.
I'm proposing that they can optionally register interfaces.
Statement also gives you access to the Connection
(Statement#getConnection)
Which JavaTypeDescriptor wrap and unwrap have no access to under the old model.
In general a lot of points are just out of date. If you want to
influence
the development of this or be part of it you should consider joining the
HipChat channel where we discuss this stuff. I stopped trying to discuss
here because no one generally answers.
By HipChat do you mean the IRC #hibernate channel on Freenode?
If not, the Community page has no mention of HipChat.
Time zone differences would likely make that a poor choice for me. I'm
in the EET zone.