Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 16847 invoked from network); 16 Jan 2006 16:43:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 16 Jan 2006 16:43:14 -0000 Received: (qmail 3305 invoked by uid 500); 16 Jan 2006 16:43:12 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 3283 invoked by uid 500); 16 Jan 2006 16:43:12 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 3272 invoked by uid 99); 16 Jan 2006 16:43:12 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jan 2006 08:43:12 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [141.211.14.78] (HELO pushingtin.mr.itd.umich.edu) (141.211.14.78) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jan 2006 08:43:11 -0800 Received: from [141.214.41.77] (host-77.subnet-41.med.umich.edu [141.214.41.77]) by pushingtin.mr.itd.umich.edu (smtp) with ESMTP id k0GGgnJZ029335 for ; Mon, 16 Jan 2006 11:42:49 -0500 Message-ID: <43CBCD04.108@umich.edu> Date: Mon, 16 Jan 2006 11:42:44 -0500 From: Henry Lu User-Agent: Mozilla Thunderbird 0.7.3 (Windows/20040803) X-Accept-Language: en-us, en MIME-Version: 1.0 To: user-java@ibatis.apache.org Subject: BUG? References: <20060116135722.79535.qmail@web25807.mail.ukl.yahoo.com> In-Reply-To: <20060116135722.79535.qmail@web25807.mail.ukl.yahoo.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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: 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