Add remapResults="true" to your select tag.
Larry
On 1/16/06, Henry Lu <[EMAIL PROTECTED]> 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
>
>