Mybatis+ehcache+存储过程返回List缓存问题

zyl258 2012-03-14 12:56:33
sqlmap.xml:

<mapper namespace="SelectCache" >

<cache type="org.mybatis.caches.ehcache.LoggingEhcache" />

<resultMap type="User" id="userResultMap">
...
</resultMap>


<!-- call procedure parameter -->
<parameterMap id="parameterMap" type="java.util.HashMap">
<parameter property="IN_TesterCode" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="IN_PassWord" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>
<parameter property="result" jdbcType="CURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="userResultMap"/>
</parameterMap>

<select id="getTesterByCodeAndPwd" parameterMap="parameterMap" statementType="CALLABLE" resultType="User">
{call pkg_gettesterbycodeandpwd.proc_gettesterbycodeandpwd(?, ?,?)}
</select>
</mapper>

java code:

List userList = null;
Map<String, Object> param = new HashMap<String, Object>();

param.put("IN_TesterCode", getUser().getTesterCode());
param.put("IN_PassWord", getUser().getPassWord());
param.put("result", userList);

// 调用存储过程
userServices.getTesterByCodeAndPwd(param);

userList= (ArrayList)param.get("result"); // 得到存储过程返回的List

第一次调用userList可用,在缓存没有失效时再次调用,userList为null,郁闷,我知道是缓存的事,但不知道怎么解决,望各位大侠多帮忙,谢谢!!!
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl258 2012-03-15
  • 打赏
  • 举报
回复
非常感谢,但是换成List userList = new ArrayList();之后userList.size()=0,没有从缓存中取到值,郁闷。希望继续解答,谢谢!!!
JerryZhou_ 2012-03-14
  • 打赏
  • 举报
回复
List userList = null;
换成
List userList = new ArrayList();
试试、
zyl258 2012-03-14
  • 打赏
  • 举报
回复
帮帮忙啊,千万别沉底了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧