Spring Boot整合Redis报错ConversionFailedException:String转byte失败求助
问题分析与解决方案
核心问题定位
错误提示是从String转byte失败,而你提供的转换器是String→byte[],类型完全不匹配;更关键的是,错误中的bankId值是60:01:XYZ(带冒号的字符串),显然不可能转成单个byte类型,说明你的实体类中bankId字段的类型定义错误。
具体解决步骤
1. 修正实体类的bankId字段类型
打开你的Account实体类,找到bankId字段,把它的类型从byte改成String:
// 错误示例 private byte bankId; // 正确写法 private String bankId;
你的业务场景中bankId是带格式的字符串,完全不适合用单个byte存储。
2. 移除无用的转换器
你写的RedisStringToBytesConverter是处理String→byte[]的转换,和当前错误无关,直接删除即可。
3. 验证Repository方法参数
确保accountRepository.findAllByBankId的参数定义为List<String>,和实体类字段类型一致:
List<Account> findAllByBankId(List<String> bankIds);
4. 清理Redis中的旧数据(可选)
如果之前Redis中已经存储了类型不匹配的Account数据,需要删除这些旧数据后重新写入,避免读取时仍然出现类型转换错误:
# 用Redis命令删除Account相关的key DEL Account:*
内容的提问来源于stack exchange,提问作者Sukh
相关产品推荐
相关产品推荐

