cache not flushing if namespace is used in <sqlMap>
---------------------------------------------------
Key: IBATIS-163
URL: http://issues.apache.org/jira/browse/IBATIS-163
Project: iBatis for Java
Type: Bug
Components: SQL Maps
Environment: OS - Windows XP
Reporter: Satish Rao
I have the following xml
<sqlMap namespace="User">
<cacheModel id="user-cache" type="LRU" readOnly="false"
serialize="true">
<flushInterval hours="24"/>
<flushOnExecute statement="User.addUser"/>
<flushOnExecute statement="User.removeUser"/>
<flushOnExecute statement="User.addEmail"/>
<flushOnExecute statement="User.removeUserEmails"/>
<property name="cache-size" value="1000"/>
</cacheModel>
<resultMap id="list-users-result"
class="com.fmr.gift.strutsplus.domain.User">
<result property="id" column="UID"/>
<result property="age" column="AGE"/>
<result property="firstname" column="FIRSTNAME"/>
<result property="lastname" column="LASTNAME"/>
<result property="eventsJoined" column="UID"
select="getEventsJoinedByUserId"/>
<result property="emails" column="UID"
select="getEmailsbyUserId"/>
</resultMap>
<select id="listUsers" resultMap="list-users-result"
cacheModel="user-cache">
SELECT
UID,
AGE,
FIRSTNAME,
LASTNAME
FROM
USERS
</select>
<delete id="removeUser" parameterClass="java.lang.Long">
DELETE FROM
USERS
WHERE
UID = #value#
</delete>
</sqlMap>
The caching works fine for select. But when I delete a user, I expected the
cache to be be flushed because of the following entry in cache model -
<flushOnExecute statement="removeUser"/>. This does not happen. When I perform
removeUser operation, the user list is displayed again and shows the user id
that was deleted.
I removed namespace="User" from <sqlMap> and also the 'User' prefix on
<flushOnExecute> and the flushing worked fine.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira