ibatis-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry Meadors (JIRA)" <ibatis-...@incubator.apache.org>
Subject [jira] Commented: (IBATIS-333) Patch which allow to subsititute property with column name from ResultMap in dynamic sql
Date Fri, 18 Aug 2006 14:46:14 GMT
    [ http://issues.apache.org/jira/browse/IBATIS-333?page=comments#action_12429031 ] 
            
Larry Meadors commented on IBATIS-333:
--------------------------------------

I do not really see the value of this patch, to me it seems to obfuscate more than clarify.

Why not just use the $substitution$ syntax? It's more direct (i.e., it doesn't rely on a result
map), and more clear (i.e., if the parameter x is "ACC_ID", then $x$ becomes ACC_ID).


> Patch which allow to subsititute property with column name from ResultMap in dynamic
sql
> ----------------------------------------------------------------------------------------
>
>                 Key: IBATIS-333
>                 URL: http://issues.apache.org/jira/browse/IBATIS-333
>             Project: iBatis for Java
>          Issue Type: New Feature
>          Components: SQL Maps
>    Affects Versions: 2.2.0
>            Reporter: Andrey
>         Attachments: insertColumnName.patch
>
>
> In situtation, when i need to implement sorting, I need to create such monster, like
abator creates for me. But
> if i only need sorting, here should be mapping beetween columns and properties (if they
specified explicitly
> in ResultMap). In this case, i can write 
>     <resultMap id="dynamicAccountResult" class="testdomain.Account">
>         <result column="ACC_ID" property="id"/>
>         <result column="ACC_FIRST_NAME" property="firstName"/>
>         <result column="ACC_LAST_NAME" property="lastName"/>
>         <result column="ACC_EMAIL" property="emailAddress"/>
>     </resultMap>
>   <select id="dynamicInsertColumnName"
>     parameterClass="string"
>     resultMap="dynamicAccountResult">
>     select
>       ACC_ID,
>       ACC_FIRST_NAME,
>       ACC_LAST_NAME,
>       ACC_EMAIL
>     from ACCOUNT
>     <dynamic>
>       <insertColumnName prepend="where"> = 1</insertColumnName>  <!--
ibatis replace this with column mapped for "id" passed as unnamed property -->
>       <insertColumnName prepend="order by"/> 
>     </dynamic>
>   </select>
>   public void testInsertColumnName() throws SQLException {
>     List list = sqlMap.queryForList("dynamicInsertColumnName", "id"); // Here we pass
our property name
>     assertEquals(1, list.size());
>   }
> SQL will be
>     select
>       ACC_ID,
>       ACC_FIRST_NAME,
>       ACC_LAST_NAME,
>       ACC_EMAIL
>     from ACCOUNT
>      where ACC_ID = 1
>      order by ACC_ID
> In any case, we can pass some AccountCriteria which will hold a list with soring properties
names and we can iterate in dynamic sql
> and get multiply field "order by" clause
> PS: Not all things tested yet. No errors thrown. This is alpha of this feature. This
is proof of conecpt (due of little amount of structural
> changes in other ibatis classes). If developers wan't this feature and agree with my
decisions, I'll implement all other bells and whishes
> like error checking, tests and may be other extensions for this tag.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message