Mybatis同一个查询,从第二次开始执行查询,查不到数据

设定一个定时任务:服务器启动后,每隔1分钟执行一次查询。
mybatis中mapper.xml配置的查询语句如下:
<select id="searchIncreInfo" resultType="cn.freeteam.cms.model.Info">
SELECT i.id, i.site, s.sourcePath sitepath, s.name sitename, i.channel, c.name channelname, c.indexnum channelIndexnum, i.title, i.url, i.addtime, i.htmlIndexnum
FROM freecms_info i
LEFT JOIN freecms_site s ON i.site = s.id
LEFT JOIN freecms_channel c ON i.channel = c.id
WHERE i.catchFlag IS NULL OR i.catchFlag != '1'
ORDER BY i.htmlIndexnum
</select>
遇到一个奇怪的问题:
定时任务第一次执行,可以查询到数据,查询到数据之后,会更新这些记录:set catchFlag = '1';
然后,通过数据库管理工具,手动将数据表中部分记录的catchFlag更新为‘0’或者其他值,但是服务器控制台显示,定时任务查不到手动修改过catchFlag的数据
服务器控制台信息如下:
-----------createIndexIncre start-----------
~~~~~~~~~~~~~~~~~~~~~9
-----------createIndexIncre end-----------
-----------createIndexIncre start-----------
~~~~~~~~~~~~~~~~~~~~~0
-----------createIndexIncre end-----------
-----------createIndexIncre start-----------
~~~~~~~~~~~~~~~~~~~~~0
-----------createIndexIncre end-----------
-----------createIndexIncre start-----------
~~~~~~~~~~~~~~~~~~~~~0
-----------createIndexIncre end-----------

备注:“~~~~~~~~~~~~~~~~~~~~~9”和“~~~~~~~~~~~~~~~~~~~~~0”中的数字是查询到的记录数。
与此同时,拷贝mapper.xml中的查询语句,通过数据库管理工具中执行,可以查到手动更改的记录(上述catchFlag='0'的记录),而服务器控制台一直出“~~~~~~~~~~~~~~~~~~~~~0”。
一旦重启服务器,在定时任务第一次执行时,又可以查到修改过的记录(catchFlag='0'的记录)。

也就是说:启动服务后,第一次执行查询,可以查到记录,接着对查到的数据记录做了更新操作,此时数据库中所有数据记录的catchFlag='1',再这然后,手动修改某几条记录的catchFlag,设定为‘0’,定时任务本该查到的,却没有查到,而直到下次服务器重启,这些catchFlag=‘0’的记录才能被查询到。

各位大侠, 以上的情况该做如何解释呢?
问题已经解决,是mybatis缓存的缘故,需在Mapper文件中设置不使用缓存,在对应的配置中添加:useCache="false" 即可,如下所示:
<select id="searchIncreInfo" resultType="cn.freeteam.cms.model.Info" useCache="false">
......
</select>

看表现,像是缓存引起的,通过第三方修改数据库,mybatis并不知道,依然按它所知道的提供数据
温馨提示:答案为网友推荐,仅供参考
大家正在搜