我在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:不支持操作符真!在org.springframework.data.gemfire.repository.query.Predicates$AtomicPredicate.getOperator(Predicates.java:174) at org.springframework.data.gemfire.repository.query.Predicates$AtomicPredicate.toClause(Predicates.java:137) at org.springframework.data.gemfire.repository.query.Predicates$AtomicPredicate.toString(Predicates.java:126) at org.springframework.data.gemfire.repository.query.Predicates.toString(Predicates.java:90) at org.springframework.data.gemfire.repository.query.QueryBuilder.create(QueryBuilder.java:44)
如果启用PDX,则布尔字段的查询工作正常。如果没有启用PDX (例如,用引导的gemfire服务器进行单元测试),那么布尔查询就无法工作。
有人遇到过这样的事吗?我使用的是gemfire 7.0.1和spring-data-gemfire 1.3.3。我认为这可能是春季数据gemfire中的一个bug,但我想把它放在那里,只是为了确定。
发布于 2014-01-15 21:28:41
看起来这是个实际的缺陷。我们在这里记录了详细信息(以及一个模拟缺陷的示例项目):
https://stackoverflow.com/questions/21122128
复制相似问题