I am trying to perform predicate in hazelcast using golang.
I have a map in hazelcast which stores value in <key(string),value(string)> format.
When I tried to perform predicate using eq/query/in, it throws exception as attached below.
Exception Stack trace:
got exception from server:n com.hazelcast.query.QueryException: java.lang.IllegalArgumentException: There is no suitable accessor for '651670e6-db46-459d-afe4-58ff766f80a5_Key' on class 'java.lang.String'n n com.hazelcast.query.impl.getters.ReflectionHelper.createGetter(ReflectionHelper.java:187)n com.hazelcast.query.impl.getters.Extractors.instantiateGetter(Extractors.java:160)n com.hazelcast.query.impl.getters.Extractors.getGetter(Extractors.java:129)n com.hazelcast.query.impl.getters.Extractors.extract(Extractors.java:82)n com.hazelcast.query.impl.getters.Extractors.extract(Extractors.java:75)n com.hazelcast.query.impl.QueryableEntry.extractAttributeValue(QueryableEntry.java:116)n com.hazelcast.query.impl.QueryableEntry.getAttributeValue(QueryableEntry.java:62)n com.hazelcast.query.impl.predicates.AbstractPredicate.readAttributeValue(AbstractPredicate.java:156)n com.hazelcast.query.impl.predicates.AbstractPredicate.apply(AbstractPredicate.java:64)n com.hazelcast.map.impl.query.PartitionScanRunner$1.accept(PartitionScanRunner.java:104)n com.hazelcast.map.impl.query.PartitionScanRunner$1.accept(PartitionScanRunner.java:89)n com.hazelcast.map.impl.recordstore.DefaultRecordStore.forEach(DefaultRecordStore.java:323)n com.hazelcast.map.impl.recordstore.DefaultRecordStore.forEach(DefaultRecordStore.java:306)n com.hazelcast.map.impl.recordstore.DefaultRecordStore.forEachAfterLoad(DefaultRecordStore.java:336)n com.hazelcast.map.impl.query.PartitionScanRunner.run(PartitionScanRunner.java:89)n com.hazelcast.map.impl.query.CallerRunsPartitionScanExecutor.execute(CallerRunsPartitionScanExecutor.java:43)n com.hazelcast.map.impl.query.QueryRunner.runPartitionIndexOrPartitionScanQueryOnGivenOwnedPartition(QueryRunner.java:236)n com.hazelcast.map.impl.query.QueryPartitionOperation.runInternal(QueryPartitionOperation.java:46)n com.hazelcast.map.impl.operation.MapOperation.run(MapOperation.java:184)n com.hazelcast.map.impl.operation.MapOperation.call(MapOperation.java:204)n com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.call(OperationRunnerImpl.java:299)n com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:270)n com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:502)n com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:202)n com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:142)n com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.loop(OperationThread.java:134)n com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.executeRun(OperationThread.java:115)n com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:111)n ------ submitted from ------.(:-1)n com.hazelcast.internal.util.ExceptionUtil.cloneExceptionWithFixedAsyncStackTrace(ExceptionUtil.java:348)n com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.returnOrThrowWithGetConventions(InvocationFuture.java:112)n com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrowIfException(InvocationFuture.java:100)n com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:618)n com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.collectResultsFromMissingPartitions(AbstractMapQueryMessageTask.java:252)n com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.invokeOnMissingPartitions(AbstractMapQueryMessageTask.java:131)n com.hazelcast.client.impl.protocol.task.map.AbstractMapQueryMessageTask.call(AbstractMapQueryMessageTask.java:100)n com.hazelcast.client.impl.protocol.task.AbstractCallableMessageTask.processMessage(AbstractCallableMessageTask.java:35)n com.hazelcast.client.impl.protocol.task.AbstractMessageTask.initializeAndProcessMessage(AbstractMessageTask.java:169)n com.hazelcast.client.impl.protocol.task.AbstractMessageTask.run(AbstractMessageTask.java:132)n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)n java.lang.Thread.run(Thread.java:829)n com.hazelcast.internal.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)n com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:111): java.lang.IllegalArgumentException: There is no suitable accessor for '651670e6-db46-459d-afe4-58ff766f80a5_Key' on class 'java.lang.String'"
Tried below code as well as checked data present or not in mancenter
Code
mapInstance.GetValuesWithPredicate(*h.ctx, predicate.Equal(key, value)) //both key,value is string
Mancenter
Im able to browse specific key using mancenter which means data exist and able to access.
Let me know what am I missing here. Since we are storing data in plain string, I dont think we need any serializer.