Sorry Jeff,

I lost my mail server yesterday afternoon ­ just found it this morning
hiding under the rug:)

With regards to foreign relationships I thought about what you said and I
think on the whole you¹re right. I don¹t want ibator (to avoid confusion,
I¹ll stick with this name for now on) to become some OR/Hibernate clone.

I spoke to some of my colleagues and what most impressed us about ibator was
that it was able to provide us a with 60% functionality out of the box, so
to speak. This enabled us to focus on the more complex 40% that was left.

So we asked ourselves, do we really want/need foreign table support and why?
It was a really positive discussion and what came about is that we felt the
byExample functionality is the key feature that enabled us to quickly get
our application out the door. What we¹re really looking for is a way to
extend that to handle basic foreign relationships. In our example we felt
that if ibator was able to provide this we would have had 80% maybe 90%
functionality done with ibator alone.

I guess what we¹re looking to do is have the ability to embed one example
object into another where a foreign relationship exists.

The complexity isn¹t in the SQL maps they¹re going to be reasonably straight
forward, it¹s going to be in extending the example objects in a sensible
way. For example lets look at the user/address relationship. They way I
imagine it working is to have two example objects UserExample and
AddressExample and creating a method in say addForeignCriteria which copies
across the criteria from the foreign example object to the main ­ this part
may be easier than I thought????

I did a little more fleshing yesterday before I had to start rebuilding the
mail server here¹s how far I got:

Restrictions (anything beyond what¹s below should be handled on an as needs
basis, not automated)
1. join based sql statements only ­ I¹m not a fan of sub queries
2. one level only 
3. only one 1:many relationship per table
4. insert and update functionality only on 1:1 relationships and where the
foreign object is a primitive wrapper

A quick and Dirty summary of functionality needed.
1. Creation of new xml child tag (something like foreignRelation)
2. creation of code to generate necessary xml code for sqmlMaps
3. expanding the example objects to facilitate foreign relationships
4. adding necessary DAO functionality for updates and inserts ­ it doesn¹t
make sense to implement this in SQL

While the idea of doing this as an academic exercise sounds exciting, I¹d
really only start down this road if there was genuine interest in it. At
this stage I¹m looking for feedback.

If there¹s interest there, I¹ll whack together a project plan on the weekend
and post it to the wiki.

Z.


Reply via email to