繁体   English   中英

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

[英]Spring-data-gemfire Boolean query only works with PDX serialization?

我在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:不支持的运算符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中的错误,但是为了确保可以将其放在那里。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM