我在pojo中有一个简单的布尔字段,我将其存储在 gemfire 区域中。 pojo还包括具有不同数据类型的其他字段(例如String
,Long
,Short
,Date
等。我为每个字段编写了一个区域查询,除了布尔字段外,它们都返回正常。来自我的实体的示例存根:
@Region("poc")
public class POCEntity {
@Id
@javax.persistence.Id
private String id;
private Boolean active;
private String internalUsername;
private Long dob;
private Date createDate, updateDate;
...
这是存储库存根:
//@Query("SELECT * FROM /poc p where p.active = false")
List<WellnessOptInEntity> findByActiveIsFalse();
我已经尝试过我可以找到的所有可能的变体(使用手动查询和查询生成),但查询未配置PDX的布尔字段始终会导致此异常:
java.lang.IllegalArgumentException:Unsupported operator TRUE! 在org.springframework.data.gemfire.repository.query.Predicates $ AtomicPredicate.getOperator(Predicates.java:174) 在org.springframework.data.gemfire.repository.query.Predicates $ AtomicPredicate.toClause(Predicates.java:137) 在org.springframework.data.gemfire.repository.query.Predicates $ AtomicPredicate.toString(Predicates.java:126) 在org.springframework.data.gemfire.repository.query.Predicates.toString(Predicates.java:90) 在org.springframework.data.gemfire.repository.query.QueryBuilder.create(QueryBuilder.java:44)
如果启用PDX,则对布尔字段的查询工作正常。如果未启用PDX(例如,使用引导的gemfire服务器进行单元测试),则布尔查询不起作用。
有没有人碰到这样的事情?我正在使用 gemfire 7.0.1 和 spring-data-gemfire 1.3.3 。我认为这可能是spring-data-gemfire中的一个错误,但是为了确保这一点,我想把它放在那里。
答案 0 :(得分:1)
看起来这是一个实际的缺陷。我们在此处记录了详细信息(以及模拟缺陷的示例项目):