Thanks Jeff:
Should have been more specific (long day) - iBATIS doesn't distinguish the names - thought there might be some magic way to do this. No worries. Thanks for the help - answered both questions. Appreciated. parki... ________________________________ From: Jeff Butler [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 05, 2007 4:26 PM To: [email protected] Subject: Re: A couple newbie questions 1. Define "the join doesn't work". If you mean that the database chokes on f.bork and b.bork then you have a seriously messed up database and you should throw it out immediatly. If you mean that iBATIS can't distingush between the different columns, then that is correct behavior. You need to rename at least one of the columns (and the corresponding propery in your result object): select f.bork, b.bork as ANOTHER_BORK from ... 2. Batches are only for inserts, updates, deletes. They do not apply for selects. Jeff Butler On Dec 5, 2007 3:57 PM, Brian Parkinson <[EMAIL PROTECTED]> wrote: Hello! I'm new to iBATIS, but loving it so far - decided to go with iBATIS as opposed to Hibernate for simplicity, and to have arguably more control over the SQL. I have a couple questions (apologies if these are covered in hthe FAQ, but I couldn't find): 1. I have a pretty complex join, and so am using the groupBy pattern (whereby the ResultMap for the top level object references child resultMaps, with groupBy, and using LEFT OUTER joins) - basically straight from the docs. It looks something like: <select id="Foo.select_by_id" parameterClass="string" resultMap="FooResultMap"> SELECT f.name <http://f.name/> , f.address, f.phone, t.colour, t.shape, t.size FROM Foo f LEFT OUTER JOIN Bar b on f.ID <http://f.id/> = b.ID <http://b.id/> WHERE f.name <http://f.name/> = #value#; </select> This is cool - my real code has many more JOINs, but you get the idea. The problem is, if both the Foo table *and* the Bar table contain a column with the * same* name, then the JOIN doesn't work, even when distinguished as f.bork and b.bork. Is there a workaround for this? 2. Due to the problem above, I'm running a number of select queries, and building up the result (ie. in the example above, I'd make one query for the Bar object(s) and then the Foo object and call foo.setBar(bar) to build things up. The question - if I put this in a batch statement, can I expect a good performance boost? Any help or tips on how best to structure this stuff is appreciated - I"m comfortable with Java, but not much of a SQL expert (at all). Any help is greatly appreciated. Cheers, parki... ps. iBATIS is great so far. :)
