Hey guys – great work on iBatis. I finally spent some time on it and I must say I prefer this method of storage much more than other options out there. In fact, the next version of WebWork (which I am a developer for) will contain integration with iBatis. Now, on to my question:
I’ve seen in the docs where vendor-specific features, especially around sequence handling, are done like so:
<select name=”insertFoo-ORACLE” …/>
<select name=”insertFoo-MYSQL” …/>
What I can’t tell is if this is just some naming convention, or if something trickier is going on here. Can iBatis run certain “versions” of a statement based on the database vendor it is currently connected to? If not, maybe this would be a good feature to add? In fact, any place a query could be written, if there could be an optional “vendor” attribute that could be used, that would be great. The end result would be:
<select name=”insertFoo” …>
<selectKey keyProperty="ID" resultClass="long" vendor=”postgres”>
SELECT nextval('category_seq') as ID
</selectKey>
<selectKey keyProperty="ID" resultClass="long" vendor=”oracle”>
SELECT nextval('category_seq') FROM dual as ID
</selectKey>
INSERT …
<selectKey keyProperty="ID" resultClass="long" vendor=”mssql”>
SELECT @@IDENTITY...
</selectKey>
</select>
_________________
Patrick Lightbody
Professional Services
Jive Software
[EMAIL PROTECTED]
www.jivesoftware.com
317 SW Alder, Ste 500
Portland, OR 97204
ph (503) 295-6552
fx (503) 961-1047
