我在 spring boot 中使用 Redis OM,我在查询对象时遇到了问题,因为它只返回前 10 条记录。
存储库类:
public interface RedisBillerRepository extends RedisDocumentRepository<Biller, Long> {
List<Biller> findByClientIds(String clientId);
}
有没有办法返回所有具有特定 clientId 的对象?不只是前 10 个。
我找到的唯一方法是使用界面页面。例如你的存储库看起来像这样:
public interface RedisBillerRepository extends RedisDocumentRepository<Biller, Long> {
Page<Biller> findByClientIds(String clientId, Pageable pageable);
}
你的班级可能看起来像这样
public class BillerService {
@Autowired
RedisBillerRepository redisBillerRepository;
public List<Biller> getAllClientsById(String clientId){
Pageable pageRequest = PageRequest.of(0, 500000);
Page<Biller> foundBillers = redisBillerRepository.findByClientIds(clientId, pageRequest);
List<Biller> billersAsList = foundBillers.getContent();
return billersAsList;
}
}
你现在必须设置限制。
我是图书馆的作者……@member2 是正确的。 RediSearch 目前有一个默认的底层
FT.SEARCH
(https://redis.io/commands/ft.search/) 方法返回找到的前 10 条记录。要覆盖它,目前唯一的方法是使用 Spring 中的分页结构。
我将在即将发布的版本中公开一个配置参数来全局设置 MAX。
现在官方有两种方式:
redis:
om:
spring:
repository:
query:
limit: 20