Spring-data-gemfire布尔查询仅适用于PDX序列化?

时间:2014-01-14 19:22:08

标签: java spring-data gemfire spring-data-gemfire

我在pojo中有一个简单的布尔字段,我将其存储在 gemfire 区域中。 pojo还包括具有不同数据类型的其他字段(例如StringLongShortDate等。我为每个字段编写了一个区域查询,除了布尔字段外,它们都返回正常。来自我的实体的示例存根:

@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中的一个错误,但是为了确保这一点,我想把它放在那里。

1 个答案:

答案 0 :(得分:1)

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

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