java - java.lang.ClassCastException:com.sun.proxy.$Proxy219 无法转换为 org.springframework.data.redis.connection.StringRedisConnection
问题描述
这是redis,管道的功能。它以前使用过,但今天我测试此功能时。它不起作用。
public List<Object> hgetpipeline(List<String> keys) {
List<Object> results = redisTemplate.executePipelined(
new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
for(int i=0; i< keys.size(); i++) {
stringRedisConn.hGetAll(keys.get(i)+"");
}
return null;
}
});
return results;
}
这一行发生了一些错误
StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
有错误信息
java.lang.ClassCastException:
com.sun.proxy.$Proxy219 cannot be cast to org.springframework.data.redis.connection.StringRedisConnection
主类中的annonation
@SpringBootApplication
@EnableAsync
@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
@EnableScheduling
@RestController
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@RequestMapping("/")
public String index() {
return "Server started!";
}
}
解决方案
您必须使用 stringRedisTemplate。例如:
@Resource
private StringRedisTemplate stringRedisTemplate;
public List<Object> hgetpipeline(List<String> keys) {
List<Object> results = stringRedisTemplate.executePipelined(
new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
for(String key:keys)
{
stringRedisConn.get(key);
}
return null;
}
});
return results;
}
推荐阅读
- c# - 实体框架核心——“如果不存在则插入”可能吗?
- android - Android:如何使用 NotificationChannel 创建永久通知
- azure - 如何在 C# 代码中从 am gremlinquery 获取单个值
- html - 如何调整复选框周围的点击区域?
- json - POST json 到 WCF 服务返回(400 BAD 请求)
- reactjs - 是否有可能在不更改道具和状态的情况下重新渲染组件
- c# - 如何在 C# 中实现数学 sigma & pi 符号?
- android - 如果我们不知道开始版本,则进行房间迁移
- java - 在 Mybatis 中使用 GET_WKT() 返回 null 值
- javascript - Serverworker 似乎使 ajax 请求非常慢