java Spring Data Redis. JPA存储库findBy不工作

fquxozlt  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(95)

我用的是spring-data-redis 2.7.5版本。
对象声明:

@Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Getter
    @Setter
    @ToString
    @RedisHash("Applications")
    public class Applications implements Serializable {
        private String appName;
        private String appType;
        @Id
        private String appId;
    }

控制器方法:

@GetMapping("/filterAppsByAppsTypes")
        public List<Applications> filterAppsByAppsTypes(@RequestParam String appType) {
            List<Applications> apps = applicationRepository.findByAppType(appType);
        return apps;
    }

资料档案库:

@Repository
    public interface ApplicationsRepository extends CrudRepository<Applications, String> {
        List<Applications> findByAppType(String appType);
    }

我有一些对象的值是我想要过滤的,但它返回的是一个空数组。我尝试添加@Indexed注解,但它没有修复它。

2lpgd968

2lpgd9681#

要做到这一点,你应该在声明实体时为搜索的字段包含@Indexed注解:

import org.springframework.data.redis.core.index.Indexed;

@Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Getter
    @Setter
    @ToString
    @RedisHash("Applications")
    public class Applications implements Serializable {
        private String appName;
        @Indexed
        private String appType;
        @Id
        private String appId;
    }

确保它是从org.springframework.data.redis.core.index.Indexed导入的

相关问题