Hi All, This is Sivakumar. I am working with a Struts based UI Application. I have a requirement to externalize all the SQL Queries from the DAO Classes to the XML Files using IBATIS Framework. I would need your assistance in solving an issue that i am facing while modifying the Queries. I am facing an issue in a particular method within A DAO Class where the select query returns a List of List of Records in the Normal DAO Query. However i am not able to fetch this when i am using the IBATIS resultClass="list". Please find below the Method below and let me know your suggestions, so that I could fetch a list of List from the IBATIS XML File Mapping. It would be really helpful to me. Method before using IBATIS: public List findClaims(ClaimSearchCriteriaVO searchCriteriaVO, UserProfileVO userProfileVO) throws DAOException { List displayColumns = searchCriteriaVO.getDisplayColumns(); try{ sql = prepareSQL(searchCriteriaVO.getDisplayColumns()); sql.append(" FROM wrkenv01..WKTV_GP00_CLAIMS WHERE "); sql.append("USUS_ID = ? AND "); sql.append("GP00_SESSION_ID = ? AND "); sql.append("WEB_PAGE_IND = ? "); if (searchCriteriaVO.getClaimSortColumn() != null && ! searchCriteriaVO.getClaimSortColumn().equalsIgnoreCase(Constants.ASTRIX)) { sql.append("ORDER BY " + searchCriteriaVO.getClaimSortColumn()); if (searchCriteriaVO.getClaimSortOrder() != null && searchCriteriaVO.getClaimSortOrder().equalsIgnoreCase("D")) { sql.append(" DESC "); } else { sql.append(" ASC "); } } pstmt = con.prepareStatement(sql.toString()); sessionId = String.valueOf(userProfileVO.getSessionId()).trim(); pstmt.setString(1, userProfileVO.getUserId()); pstmt.setString(2, sessionId); pstmt.setString(3, "S"); // WEB_PAGE_IND 'S' for search rs = pstmt.executeQuery(); searchResultList = new ArrayList(); while (rs.next()) { rowList = new ArrayList(); rowList.add(DaoUtil.trim(rs.getString("DISPLAY_COLOR_IND"))); rowList.add(DaoUtil.trim(rs.getString("CLCL_ID"))); rowList.add(DaoUtil.trim(rs.getString("PRPR_ID"))); if (displayColumns != null) { for (int displayColumnsIter = 0; displayColumnsIter < displayColumns.length; displayColumnsIter++) { rowList.add(DaoUtil.trim(rs.getString(displayColumns[displayColumnsIter]))); } } searchResultList.add(rowList); } } catch (SQLException ex) { m_logger.error("SQLException in findClaims() :" + ex.getMessage()); throw new DAOException(ex.getMessage()); } finally { AppDBUtil.closeQueryObjects(rs, pstmt, con); } return searchResultList; } Method after using IBATIS: DAO.java file public List findClaims(ClaimSearchCriteriaVO searchCriteriaVO, UserProfileVO userProfileVO) throws DAOException { String[] displayColumns = null; String claimSortColumn = null; String claimSortOrder = null; List searchResultList = null; try { displayColumns = searchCriteriaVO.getDisplayColumns(); claimSortColumn = searchCriteriaVO.getClaimSortColumn(); claimSortOrder = DaoUtil.trim(searchCriteriaVO.getClaimSortOrder()); Map findClaimsMap = new HashMap(); findClaimsMap.put("userID", userProfileVO.getUserId()); String sessionId = String.valueOf(userProfileVO.getSessionId()).trim(); findClaimsMap.put("sessionID", sessionId); findClaimsMap.put("webPageInd", "S"); if (displayColumns != null) { findClaimsMap.put("displayColumns", displayColumns); } if (claimSortColumn != null && !claimSortColumn.equalsIgnoreCase(Constants.ASTRIX)) { System.out.println("claimSortcolumn"+claimSortColumn); findClaimsMap.put("claimSortColumn", claimSortColumn); if (claimSortOrder != null) { findClaimsMap.put("claimSortOrder", claimSortOrder); } } SqlMapClient sqlMapQueryBuilder = AppUtil.getSQLMapQueryBuilder(m_logger, sqlMapConfigFile); searchResultList = sqlMapQueryBuilder.queryForList("Claim.findClaims", findClaimsMap); for (int i = 0; i < searchResultList.size(); i++){ List rowsList = (List) searchResultList.get(i); System.out.println("rowsList "+rowsList.size()); // This should contain all the Column Values fetched from the Table. But this prints 0 } } catch (SQLException ex) { m_logger.error("SQLException in findClaims() :" + ex.getMessage()); throw new DAOException(ex.getMessage()); } return searchResultList; } using IBATIS: Query.xml file <select id="findClaims" resultClass="list" > SELECT DISPLAY_COLOR_IND, CLCL_ID, PRPR_ID <isPropertyAvailable property="displayColumns"> <iterate prepend ="," property="displayColumns" conjunction=","> #displayColumns[]# </iterate> </isPropertyAvailable> as claimsList FROM wrkenv01..WKTV_GP00_CLAIMS WHERE USUS_ID = #userID# AND GP00_SESSION_ID = #sessionID# AND WEB_PAGE_IND = #webPageInd# <isPropertyAvailable property="claimSortColumn" > ORDER BY $claimSortColumn$ <isPropertyAvailable property="claimSortOrder" > <isEqual property="claimSortOrder" compareValue="D"> DESC </isEqual> <isNotEqual property="claimSortOrder" compareValue="D"> ASC </isNotEqual> </isPropertyAvailable> </isPropertyAvailable> </select> Could you please provide your expertise on this? Thanks, Shiva The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/