Here is one of the tests I pointed you to before: https://github.com/hibernate/hibernate-core/blob/master/hibernate-core/src/test/java/org/hibernate/metamodel/binding/SimpleValueBindingTests.java
It shows the basic steps. Pretty similar to what you had. On 06/23/2011 02:18 PM, Max Rydahl Andersen wrote: > 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 > > > -- 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