0

我在 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.1spring-data-gemfire 1.3.3。我认为这可能是 spring-data-gemfire 中的一个错误,但想把它放在那里只是为了确定。

4

1 回答 1

1

看起来这是一个实际的缺陷。我们在此处记录了详细信息(以及模拟缺陷的示例项目):

https://jira.springsource.org/browse/SGF-247

于 2014-01-15T21:28:41.857 回答