Looks like the parameter being passed in is a String instead of an org.model.employeeMaster instance (that should be EmployeeMaster, btw).
Also, the first version has a parameter map as well, it is just created dynamically, so it should cache just fine if you define a cache model, and add a cacheModel attribute to the select tag. Larry On 5/30/06, Blackburn, Gary (HHS/RHRC) <[EMAIL PROTECTED]> wrote:
Hi all. I'm having trouble converting some (working) inline parameters to the equivalent parameter map. This works just fine: <select id="getemployeeMasters" resultClass="org.model.employeeMaster"> SELECT substr(administrative_code, 1, 3) as org FROM administrative_code a, employeeMaster e WHERE rtrim(a.administrative_code) = rtrim(e.org) AND a.administrative_code like #org# GROUP BY substr(administrative_code, 1, 3) </select> This does not: <parameterMap id="getemployeeMastersParam" class="org.model.employeeMaster"> <parameter property="org" /> </parameterMap> <select id="getemployeeMasters" parameterMap="getemployeeMastersParam"> SELECT substr(administrative_code, 1, 3) as org FROM administrative_code a, employeeMaster e WHERE rtrim(a.administrative_code) = rtrim(e.org) AND a.administrative_code like ? GROUP BY substr(administrative_code, 1, 3) </select> I get the following error: WARN - CommonsLoggingOutput.warn(44) | Erroring: id[510_1149004528570] message[org.springframework.jdbc.UncategorizedSQLException: (SqlMapClient operation): encountered SQLException [ --- The error occurred in org/dao/ibatis/employeeMasterSQL.xml. --- The error occurred while preparing the mapped statement for execution. --- Check the getemployeeMasters. --- Cause: java.sql.SQLException: Invalid parameter object type. Expected 'org.model.employeeMaster' but found 'java.lang.String'.]; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in org/dao/ibatis/employeeMasterSQL.xml. --- The error occurred while preparing the mapped statement for execution. --- Check the getemployeeMasters. --- Cause: java.sql.SQLException: Invalid parameter object type. Expected 'org.model.employeeMaster' but found 'java.lang.String'. From what I can tell these two versions should be functionally equivalent but obviously they are not. (I need to convert to a parameter map so that I can turn on caching.) Any help would be appreciated! :-) -- Gary Blackburn
