[ 
https://issues.apache.org/jira/browse/IBATIS-415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeff Butler closed IBATIS-415.
------------------------------

    Resolution: Invalid

iBATIS already retrieves columns in the order they are specified in a result 
map.

As for the issue you raise, there is nothing iBATIS can do.  The JDBC 
specification explicitly states that if multiple columns have the same name in 
a result set, then only the first one will be returned when getting by column 
name.  The only way to ensure that you'll get the proper columns is to use a 
column index or to rename the columns so that they are unique.

Sorry for the hassle, but blame JDBC - not us :)


> Obey column order in resultMap
> ------------------------------
>
>                 Key: IBATIS-415
>                 URL: https://issues.apache.org/jira/browse/IBATIS-415
>             Project: iBatis for Java
>          Issue Type: New Feature
>          Components: SQL Maps
>    Affects Versions: 2.3.1
>            Reporter: Tony Ugando
>
> It will be extremely beneficial if iBatis could lookup column names in a 
> resultSet, in the exact same order they are found in the resultMap.  This 
> would allow users to maintain joins much easier, specifically for tables with 
> a lot of columns.  Maybe an attribute can be added to the resultMap tag, 
> named obeyColumnOrder="true/false".  When setting this attribute to true, 
> then the columns will be read in the exact same order that they are found in 
> the resultMap, and any nested or inherited result maps as well.
> Currently, it is truly a nightmare when dealing with joined tables that have 
> conflicting column names.  You either need to define an alias for each column 
> name, in each table, which is extremely tedious, or you need to use the 
> columnIndex attribute in the result tag.  The columnIndex solution is also 
> very tedious to maintain, and it requires you to create multiple resultMaps 
> for each table that you are modeling.
> eq.
> select
> TBL_1.*, TBL_2.*
> from TBL_1
> left outer join TBL_2
> on TBL_1.SEQ = TBL_2.FK_SEQ
> is much easier to maintain than...
> select
> TBL_1.SEQ, TBL_1.COL,...,
> TBL_2.SEQ, TBL_2.COL,...
> from TBL_1
> left outer join TBL_2
> on TBL_1.SEQ = TBL_2.FK_SEQ

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to