Below query is not returning data. Data is present. Checked with EQUALS operator.
AndFilter(EqualsFilter(KeyExtractor(extractor=.getSubscriberCode()), JACK), ContainsAnyFilter(KeyExtractor(extractor=.getNumber()), [43]))
Below is the CoHQL transformation of above filter.
select * from MyCache where key().subscriberCode="JACK" and key().number contains any ("43");
What is wrong in this?
From ContainsAnyFilter
javadoc:
Filter which tests a Collection or Object array value returned from a method invocation for containment of any value in a Set
A guess your key.getNumber()
returns single value, not a collection. And since ContainsAnyFilter
operates on collections and arrays, it simply filter out all cache enties.
You should probably try InFilter
instead of ContainsAnyFilter
.