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

Reply via email to