我在 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:不支持的运算符 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 中的一个错误,但想把它放在那里只是为了确定。