【问题标题】:filtering redis data with jpql does not work用 jpql 过滤 redis 数据不起作用
【发布时间】:2020-10-20 03:00:23
【问题描述】:

是否可以使用 redis 创建 JPQL 过滤器?

如果我试试这个:

List<ContingencyDTO> findAll();

作品:

但如果我尝试使用 jpql 编号。

@Repository
public interface ContingencyRepository extends 
CrudRepository<ContingencyDTO,Integer>, QueryByExampleExecutor<ContingencyDTO>  
{

List<ContingencyDTO> findByInitialZipCodeLessThanEqual(Long initialZipCode);

}

返回此消息错误: Erro::handleAPIException::异常

org.springframework.dao.InvalidDataAccessApiUsageException: LESS_THAN_EQUAL (1): [IsLessThanEqual, LessThanEqual] 不支持 Redis 查询派生!;嵌套异常是 java.lang.IllegalArgumentException: LESS_THAN_EQUAL (1): [IsLessThanEqual, LessThanEqual] 不支持 Redis 查询派生!


我尝试在 DTO 中将过滤后的值更新为 @Indexed 但不起作用。

private @Indexed Long initialZipCode;

【问题讨论】:

  • 您遇到错误了吗?你知道findByZipcodefindAll 是如何工作的吗?
  • Erro:: handleAPIException:: 异常 org.springframework.data.mapping.PropertyReferenceException: 没有找到 ContingencyDTO 类型的属性 findByZipcode!在 org.springframework.data.mapping.PropertyPath.

标签: java spring jpa redis jpql


【解决方案1】:

请检查实体ContingencyDTO 中的属性名称。如果属性名称是zipcode,那么上面的方法应该有效。如果属性名是zipCode,那么方法名应该是findByZipCode

如果您想检索给定zipCode 的所有ContingencyDTO 实体,那么List&lt;ContingencyDTO&gt; findByZipCode(String zipCode); 应该可以工作。在这种情况下不需要@Query 注释,在上述情况下也不需要,如果按照这个解释解决了问题。

【讨论】:

  • 我的实体不是问题...问题。当我尝试使用 redis 时...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多