Any idea how much this would affect tools ability to reflect on the metamodel without
requiring the actual
model classes and types to be available ?
At what time will the classes/types be *required* to be available?
i.e. for H3 as long as we filled out all the type info in the xml hibernate did not
require
access to types or model classes until buildMappings() occurred.
Allowing us to iterate the mapped classes and tables for code generation.
/max
On Jun 13, 2011, at 23:29, Steve Ebersole wrote:
Wanted to start a follow up discussion to the conversation we had at
the
IRC meeting on 6/13 with regards to changing the way we process mapping
information to follow dependencies in the various types of information.
What we do currently (in the metamodel code) is essentially the same as
the legacy code. That is to say we process through a mapping source in
full and then move on to the next one, saving off "second passes"
whenever we encounter information on which we have to wait. The second
passes in the new metamodel code are isolated I guess (so far) to
org.hibernate.metamodel.source.internal.EntityReferenceResolver
What I proposed instead is quite different, more like what I did for the
rest of the MetadataImpl constructor code in terms of defining
dependencies and processing stuff in an order that makes sure to avoid
the need for second passes.
Here is the initial swab at the levels of information:
1) entity - basic entity information such as name, hierarchy
2) identifiers - normal identifiers could almost be handled in the first
level. key-many-to-one still needs some form of delayed queuing.
3) secondary tables
4) attributes
5) associations
The dependencies flow downward; (2) depends on (1); (3) depends on (2); etc.
I liked handling (3) secondary tables separately because they basically
expand the possible set of columns available for (4) and (5).
--
Steve Ebersole <steve(a)hibernate.org>
http://hibernate.org
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev
/max
http://about.me/maxandersen