ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Larry Meadors <lmead...@apache.org>
Subject Re: BUG?
Date Mon, 16 Jan 2006 17:09:59 GMT
Add remapResults="true" to your select tag.

Larry


On 1/16/06, Henry Lu <zhlu@umich.edu> wrote:
> Take a look the following debug message: (I am using ibatis 2.1.16)
>
> PreparedStatement:      select PARAM1 as m_data1,lab_role_Fnc(PARAM2) as
> m_data2,USERID as m_da
> ta3,Name_Fnc(PARAM2) as m_data4,PARAM2 as m_data5, APPLCD m_data6
> FROM AUT
> HORIZE.USER_ROLES    where        APPLCD='COREYP' AND
> PARAM1='2'              OR
> DER BY 2
> 11:25:51,156 DEBUG - [sql.PreparedStatement.debug] {pstm-100004}
> Parameters: []
> 11:25:51,156 DEBUG - [sql.PreparedStatement.debug] {pstm-100004} Types: []
> 11:25:51,156 DEBUG - [sql.ResultSet.debug] {rset-100005} ResultSet
> 11:25:51,171 DEBUG - [sql.ResultSet.debug] {rset-100005} Header:
> [M_DATA1, M_DAT
> A2, M_DATA3, M_DATA4, M_DATA5, M_DATA6]
> 11:25:51,171 DEBUG - [sql.ResultSet.debug] {rset-100005} Result: [2,
> DIRECTOR, j
> eschwar, Schwartz,Jessica, 01043411, COREYP]
> 1=2, 2=DIRECTOR, 3=jeschwar, 4=Schwartz,Jessica, 5=01043411, 6=COREYP
>
> so far so good
>
> 11:25:51,187 DEBUG - [sql.Connection.debug] {conn-100006} Connection
> 11:25:51,187 DEBUG - [sql.PreparedStatement.debug] {pstm-100007}
> PreparedStateme
> nt:      select LAB_ID as m_data1,LAB_ID || ' - ' || LAB_NAME as
> m_data2       F
> ROM LABS                  ORDER BY LAB_NAME
> 11:25:51,187 DEBUG - [sql.PreparedStatement.debug] {pstm-100007}
> Parameters: []
> 11:25:51,187 DEBUG - [sql.PreparedStatement.debug] {pstm-100007} Types: []
> 11:25:51,203 DEBUG - [sql.ResultSet.debug] {rset-100008} ResultSet
> 11:25:51,203 DEBUG - [sql.ResultSet.debug] {rset-100008} Header:
> [M_DATA1, M_DAT
> A2]
> 11:25:51,203 DEBUG - [sql.ResultSet.debug] {rset-100008} Result: [2, 2 -
> CMB lab
>  I]
>
> error:
>
> org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in
> task 'SqlMapClient operation'; nested exception is
> com.ibatis.common.jdbc.exception.NestedSQLException: --- The error
> occurred in edu/umich/med/umms/coreyp/dao/ibatis_map/misc.xml. --- The
> error occurred while applying a result map. --- Check the
> select_list_col_str-AutoResultMap. --- Check the result mapping for the
> 'm_data3' property. --- Cause: java.sql.SQLException: Invalid column name
> org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator(SQLErrorCodeSQLExceptionTranslator.java:223)
>
> somehow, ibatis/sql tried to take partial of first statemen in to the
> second one.
>
> here is my map:
>
>   <select id="select_list_col_str"
>              resultClass="Strdata">
>     select $col_name_str$
>            FROM $table_name$
>    <dynamic prepend="where">
>     <isNotEmpty prepend="and" property="where_str">
>         $where_str$
>     </isNotEmpty>
>    </dynamic>
>        ORDER BY $order_str$
>   </select>
>
> Java code:
>
>       lab_id = "2";
>
>       where_str = "APPLCD='COREYP' AND PARAM1='"
>          + lab_id + "'";
>
>       col_name_list =
>          "PARAM1 as m_data1,"
>          + "lab_role_Fnc(PARAM2) as m_data2,"
>          + "USERID as m_data3,"
>          + "Name_Fnc(PARAM2) as m_data4,"
>          + "PARAM2 as m_data5, APPLCD m_data6";
>
>       List lst2 = m_misc.SelectList_col_str(
>             col_name_list,
>             "AUTHORIZE.USER_ROLES",
>             where_str, "2");
>       if (lst2 != null && lst2.size() > 0) {
>          st = (Strdata)lst2.get(0);
>          System.out.println(
>                "1="+st.getM_data1()+
>                ", 2="+ st.getM_data2() +
>                ", 3="+ st.getM_data3() +
>                ", 4="+ st.getM_data4() +
>                ", 5="+ st.getM_data5() +
>                ", 6="+ st.getM_data6());
>          form.setCnt_1(lst2.size());
>          form.setList_1(lst2);
>       }
>
>       where_str = null;
>       order_str = "LAB_NAME";
>       col_name_list = "LAB_ID as m_data1,"
>          + "LAB_ID || ' - ' || LAB_NAME as m_data2";
>
>       lst = m_misc.SelectList_col_str(
>             col_name_list,
>             "LABS", where_str, order_str);
>       if (lst != null && lst.size() > 0) {
>          form.setCnt_2(lst.size());
>          form.setList_2(lst);
>       } else {
>          return;
>       }
>
>    public List SelectList_col_str(String col_str, // required
>          String table_name, // required
>          String where_str,  // optional
>          String order_str)  // required
>    {
>       Map map = new HashMap(4);
>       map.put("col_name_str", col_str); // required
>       map.put("table_name", table_name); // required
>       if (where_str != null && where_str.length() > 0) {
>          map.put("where_str", where_str);
>       } else {
>          map.put("where_str", "");
>       }
>       map.put("order_str", order_str); // required
>
>       return getSqlMapClientTemplate().queryForList(
>                "select_list_col_str", map);
>    }
>
> -Henry
>
>

Mime
View raw message