sorry i'm a bit slow here but could someone show (pseudo) code for how the new 
approach would look like versus before?

Here is what I remember being used to (approximately from memory):

PersistentClass pc = new PersistentClass();
pc.setEntityName("org.model.Customer");
pc.setTable(new Table("CUSTOMER"))

Property p = new Property("name");

Value v = new SimpleValue();
v.setColumn("NAM");

p.setValue(v);

pc.addProperty(p);

What's the new approach for something like that?

/max

On Jun 23, 2011, at 20:45, Gail Badner wrote:

> 1) is very much how I envisioned the state objects to be used (e.g., data 
> processed from a particular source that initializes an implementation of a 
> common "state" interface). 
> 
> I like what you proposed for 2), however I would like to see bindings that 
> are immutable, at least after being built. I really dislike having setters 
> available when the session factory is being built.
> 
> In addition, I'd like to suggest that state APIs be defined and bound 
> according to use case. From what I have seen, is not very difficult to 
> determine the use case given the data. IMO, dealing with one use case at a 
> time would make the processing code straightforward and easier to maintain.
> 
> As an example, I've listed the different types of composite IDs in 
> http://opensource.atlassian.com/projects/hibernate/browse/HHH-6234 . The old 
> HbmBinder code attempts to have different types of composite IDs fit the same 
> mold, which makes the source code very difficult to maintain without breaking 
> something. IMO, composite IDs could be very much simplified if taken one use 
> case at a time.
> 
> ----- Original Message -----
> From: "Steve Ebersole" <st...@hibernate.org>
> To: hibernate-dev@lists.jboss.org
> Sent: Wednesday, June 22, 2011 3:16:36 PM
> Subject: [hibernate-dev] metamodel thoughts
> 
> Wanted to get my thoughts on the current state of the metamodel down so 
> we could all discuss.
> 
> First to define some vocab for discussing.  I say that the old code 
> (Configuration, HBMBinder/AnnotationBinder, mapping package) used a 
> "push" model.  The binders interpreted the various user supplied values 
> and made decisions *pushing* the results of those decisions to the 
> mapping classes.  The new code attempts a "pull" approach.  The user 
> values are interpreted into BindingState and RelationalState objects 
> which get passed in to the Binding objects which *pull* the data from 
> the states.
> 
> At the most basic of descriptions, what is it we are trying to 
> accomplish here?  Well we have some mapping information supplied by the 
> user in a number of forms (hbm, annotations, etc) and need to correctly 
> build/populate a binding model based on the values and interpretations 
> of those values.
> 
> In designing I always go back to the question of "how would I accomplish 
> this task by hand".  Here, the first thing I see is that we have user 
> values in multiple formats.  So the very first thing I would do, 
> ideally, is to some how normalize values from those different "sources". 
>  I would then take those normalized values and then populate the 
> binding model.
> 
> So here is what I suggest:
> 1) What we currently call "state" objects would serve the role of this 
> normalization.  We would have specific things to normalize hbm, 
> annotations, etc.  It could even be just different implementations of 
> the same normalized interface which are constructed with whatever they 
> need to answer the contract queries.
> 2) These normalized value objects are then passed into THE binder which 
> uses the information there to build and populate the bindings.  2 things 
> to note here.  First I said THE binder.  The idea is that there is just 
> one for both annotations and hbm as the differences were removed during 
> normalization.  Second this part is a push approach.  Specifically that 
> means the bindings and models are mutable.
> 
> In my mind this sits between push and pull (or does each)
> 
> -- 
> Steve Ebersole <st...@hibernate.org>
> http://hibernate.org
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev

/max
http://about.me/maxandersen




_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to