当前使用版本(必填,否则不予处理)
3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
测试redis缓存时,查询redis是否有结果生成的key和缓存数据时的key不一致。
/**
* 添加缓存注解
* @param page
* @param queryWrapper
* @param <E>
* @return
*/
@Cacheable(value = CommonConstant.QUERY_BASE_CACHE,keyGenerator =“methodParamKeyGenerator”)
@Override
public <E extends IPage<VariableQueryBase>> E page(E page, Wrapper<VariableQueryBase> queryWrapper) {
return getBaseMapper().selectPage(page,queryWrapper);
}
@Bean public KeyGenerator methodParamKeyGenerator() { return (target, method, params) -> { StringBuilder sb = new StringBuilder(); sb.append(target.getClass().getName()); sb.append(method.getName()); sb.append("&"); for (Object obj : params) { if (obj != null) { sb.append(obj.getClass().getName()); sb.append("&"); sb.append(JSON.toJSONString(obj)); sb.append("&"); } } log.info("redis cache key str: " + sb.toString()); return sb.toString(); }; }
重现步骤(如果有就写完整)
第一次结果 com.szr.adt.variablecalculation.service.impl.VariableQueryBaseServiceImplpage&com.baomidou.mybatisplus.extension.plugins.pagination.Page&{"current":1,"hitCount":false,"orders":[{"asc":false,"column":"id"}],"pages":0,"records":[],"searchCount":true,"size":5,"total":0}&com.baomidou.mybatisplus.core.conditions.query.QueryWrapper&{"customSqlSegment":"WHERE ((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{},"expression":{"groupBy":[],"having":[],"normal":[{"customSqlSegment":"WHERE (enabled = #{ew.paramNameValuePairs.MPGENVAL1})","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{"$ref":"$.entity"},"expression":{"groupBy":[],"having":[],"normal":[{"sqlSegment":"enabled"},"EQ",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL4}"}],"orderBy":[],"sqlSegment":"(enabled = #{ew.paramNameValuePairs.MPGENVAL1})"},"paramNameValuePairs":{"MPGENVAL3":1593748287000,"MPGENVAL2":1593575487000,"MPGENVAL1":1,"MPGENVAL4":1},"sqlSegment":"(enabled = #{ew.paramNameValuePairs.MPGENVAL1})","targetSql":"(enabled = ?)"},"AND",{"customSqlSegment":"WHERE (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{"$ref":"$.entity"},"expression":{"groupBy":[],"having":[],"normal":[{"sqlSegment":"create_time"},"BETWEEN",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL5}"},"AND",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL6}"}],"orderBy":[],"sqlSegment":"(create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})"},"paramNameValuePairs":{"$ref":"$.expression.normal[0].paramNameValuePairs"},"sqlSegment":"(create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})","targetSql":"(create_time BETWEEN ? AND ?)"}],"orderBy":[],"sqlSegment":"((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))"},"paramNameValuePairs":{"$ref":"$.expression.normal[0].paramNameValuePairs"},"sqlSegment":"((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))","targetSql":"((enabled = ?) AND (create_time BETWEEN ? AND ?))"}& 第二次结果 com.szr.adt.variablecalculation.service.impl.VariableQueryBaseServiceImplpage&com.baomidou.mybatisplus.extension.plugins.pagination.Page&{"current":1,"hitCount":false,"orders":[{"asc":false,"column":"id"}],"pages":0,"records":[],"searchCount":true,"size":5,"total":0}&com.baomidou.mybatisplus.core.conditions.query.QueryWrapper&{"customSqlSegment":"WHERE ((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{},"expression":{"groupBy":[],"having":[],"normal":[{"customSqlSegment":"WHERE (enabled = #{ew.paramNameValuePairs.MPGENVAL1})","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{"$ref":"$.entity"},"expression":{"groupBy":[],"having":[],"normal":[{"sqlSegment":"enabled"},"EQ",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL7}"}],"orderBy":[],"sqlSegment":"(enabled = #{ew.paramNameValuePairs.MPGENVAL1})"},"paramNameValuePairs":{"MPGENVAL3":1593748287000,"MPGENVAL2":1593575487000,"MPGENVAL1":1,"MPGENVAL7":1,"MPGENVAL6":1593748287000,"MPGENVAL5":1593575487000,"MPGENVAL4":1},"sqlSegment":"(enabled = #{ew.paramNameValuePairs.MPGENVAL1})","targetSql":"(enabled = ?)"},"AND",{"customSqlSegment":"WHERE (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})","emptyOfEntity":true,"emptyOfNormal":false,"emptyOfWhere":false,"entity":{"$ref":"$.entity"},"expression":{"groupBy":[],"having":[],"normal":[{"sqlSegment":"create_time"},"BETWEEN",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL8}"},"AND",{"sqlSegment":"#{ew.paramNameValuePairs.MPGENVAL9}"}],"orderBy":[],"sqlSegment":"(create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})"},"paramNameValuePairs":{"$ref":"$.expression.normal[0].paramNameValuePairs"},"sqlSegment":"(create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3})","targetSql":"(create_time BETWEEN ? AND ?)"}],"orderBy":[],"sqlSegment":"((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))"},"paramNameValuePairs":{"$ref":"$.expression.normal[0].paramNameValuePairs"},"sqlSegment":"((enabled = #{ew.paramNameValuePairs.MPGENVAL1}) AND (create_time BETWEEN #{ew.paramNameValuePairs.MPGENVAL2} AND #{ew.paramNameValuePairs.MPGENVAL3}))","targetSql":"((enabled = ?) AND (create_time BETWEEN ? AND ?))"}&
报错信息
Comment From: miemieYaho
Wrapper 不适合这个