You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis Jpa Repository按嵌套对象id查询无结果,如何编写正确方法名

问题根源及解决方案

核心问题1:Repository继承类型错误

你当前继承的JpaRepository是Spring Data为关系型数据库设计的Repository接口,不支持Redis的嵌套属性查询逻辑,需要替换为Spring Data Redis提供的RedisRepository。

核心问题2:嵌套查询字段未加索引

Spring Data Redis仅会对标注了@Indexed的字段建立二级索引,没有索引的字段无法通过方法名查询命中,你需要给ImeiResponse类中需要查询的imei字段添加@Indexed注解。

修正后的代码

1. 修正ImeiResponse类

@Data
public class ImeiResponse {
    @Indexed // 新增索引注解
    private String imei;
    private String type;
}

2. 修正Repository定义

@Repository
// 替换继承的父接口为RedisRepository
public interface NeirRepository extends RedisRepository<NeirResponse, String> {
    // 该方法名写法本身是正确的,无需修改
    Optional<NeirResponse> findByImeiListImei(String imei);
}

注意事项

修改注解后需要删除Redis中已存在的旧数据,重新写入新数据才会生成对应的imei字段索引,此时查询才会返回正确结果。
如果需要验证索引是否生成,可以通过Redis CLI查询是否存在格式为imei:imeiList.imei:{对应imei值}的索引键。


内容的提问来源于stack exchange,提问作者mahfuj asif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:57:06