I actually have experienced a similar problem with MySql; the deleteByExample results in an syntax error when 'alias' is specified. Fortunately, there was an easy workaround that allows me to use alias in DELETE statement and I could write a plugin to tweak Ibator's default syntax.

http://harawata.blogspot.com/2009/04/ibators-deletebyexample-and-mysql.html

--
I cannot confirm this, but is the following syntax valid in SQL Server?
If so, writing a simple plugin could be a solution for deleteByExample.

DELETE u FROM User AS u
WHERE u.xxx = ...

Regards,
Iwao

On 2009/08/10, at 1:12, Jeff Butler <jeffgbut...@gmail.com> wrote:

There's no support for this in Ibator now.  It will take a rewrite of
the example class generator at the very least - with support from new
SQL element generators too.

It also presents a bit of a usage problem for the iBATIS3 interface
mapper generator.  I haven't released this yet, but will soon.

So I'll have to think about this for a bit to come up with the best
way to deal with it.

Don't you love how "standard" SQL is?  I've never run into this in all
my testing, but I don't test with SQL Server regularly.  No problems
in MySql, HSQLDB, DB2, and (I think) PostgreSQL.

Jeff Butler



On Sun, Aug 9, 2009 at 10:11 AM, Chad McHenry<mchen...@gmail.com> wrote:
Using SQL Server, I get syntax errors from Ibator generated deleteByExample
and updateByExample* for tables which I give an alias.
Neither deleteByPrimaryKey, updateByPrimaryKey, nor
updateByPrimaryKeySelective use of the alias, and work, but deleteByExample, updateByExample, and updateByExampleSelective use the alias, and fail. I don't see a way to disable alias use in just the '*ByExample*' statements without creating "Example_Where_Clause_Without_Aliases" sql fragment, and using that instead of the "Example_Where_Clause", but that would take a lot
of rewriting of the auto generated stuff or an Ibator plugin.
Any suggestions?
   <table tableName="user" alias="u" delimitIdentifiers="true" />

generates:
 <delete id="ibatorgenerated_deleteByPrimaryKey"
parameterClass="model.User">
   <!--
WARNING - This element is automatically generated by Apache iBATIS
ibator, do not modify.
   -->
   delete from "user"
   where id = #id:VARCHAR#
 </delete>
 <delete id="ibatorgenerated_deleteByExample"
parameterClass="model.UserExample">
   <!--
WARNING - This element is automatically generated by Apache iBATIS
ibator, do not modify.
   -->
   delete "user" from "user" u
   <include refid="user.ibatorgenerated_Example_Where_Clause" />
 </delete>
deleteByPrimaryKey works fine, but deleteByExample fails with bad- syntax error, due to the aliases which SQLServer 2005 does not like in delete or
update statements.



---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org

Reply via email to