Regarding the component related changes mentioned in the previous
email...

As I mentioned a lot of the pre-requisite work has already been
performed on HEAD.  I also took the opportunity to refactor the
packaging of the org.hibernate.tuple package.  Specifically, most of the
pre-requisite work was the introduction of the
o.h.t.component.ComponentMetamodel class.  Currently, ComponentType just
uses this new class directly.

What needs to happen next, then, is for the introduction of a
org.hibernate.persister.component.ComponentPersister which is managed as
part of the session factory much like the other persisters.
ComponentType will then need to look up its corresponding
ComponentPersister based on a "role name" and use the capabilities of
that persister.  The pattern here is very similar to
EntityType/EntityPersister.  The difficulty I ran into though was that
ComponentType would then require access to the session factory (in order
to locate the persister) from within methods where it is currently not
passed a reference to the session factory (specifically, this was
methods like isSame(), isEqual(), compare(), getHashCode(), etc).  This
gets to more general discussions we have had in the past regarding the
scoping of Types.  The solution is one of two things:
1) Devise some sort of scoping scheme where Types can unequivocally be
"bound" to a session factory.  This is obviously difficult given the
current Hibernate.LONG, Hibernate.STRING, etc static references.  One
thought here would be splitting types (and their interface
appropriately) to define "static" Types and "scoped" Types...
2) Modify the Type interface to accept either a session or a session
factory/entity mode combo for most methods (would not really matter for
methods like sqlTypes(), etc) 

As I mentioned before this then allows us to make the
'hibernate.bytecode.provider' and
'hibernate.bytecode.use_reflection_optimizer'.  Down the road, it also
allows us to implement discrimination-based inheritance for components.


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
hibernate-devel mailing list
hibernate-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to