I didn't exactly get 1), but I'm sure your best bet is to use keyConfiguration (CacheKeyConfiguration) in this case to set affinity key. Otherwise you're at risk of getting "incompatible affinity keys" error.
BTW isn't it a better topic for dev@? Care to crosspost? Regards, -- Ilya Kasnacheev 2018-05-09 14:46 GMT+03:00 aealexsandrov <aealexsand...@gmail.com>: > Hi again, > > We already discussed about it recently. At the moment some things works > incorrect in 2.4: > > 1)Rest API only support String as key and value. And looks like you can't > use affinity key on strings for the same issue. But if you can setup it > using AffinityKeyMapper anotation: > > public static class Key { > @AffinityKeyMapped > @QuerySqlField(index = true) > private final Stringkey; > > public Key(Stringkeykey) { > this.key = key; > } > > public Stringkey getKey() { > return key; > } > } > > And put it: > > CacheConfiguration<Key, Person> cfg = new CacheConfiguration<>("cache"); > > It should work like example from here: > > http://apache-ignite-users.70518.x6.nabble.com/ > Inconsistency-reading-cache-from-code-and-via-REST-td21228.html#a21293 > > 2)qryexe doesn't work correct. At some reason it ignores _key and _value > fields. Looks like it could be solved in future releases. > > How I am going to show you some working examples how you avoid second > problem: > > StartServerNode.java > <http://apache-ignite-users.70518.x6.nabble.com/file/ > t1704/StartServerNode.java> > StartClientNode.java > <http://apache-ignite-users.70518.x6.nabble.com/file/ > t1704/StartClientNode.java> > > 1)qryfldexe - exactly the same that you want but had another syntax: > > Here - > select%20firstName%2C%20lastName%20from%20Person% > 20where%20_key%20%3D%201%20or%20_key%20%3D%203 > is select firstName, lastName from Person where _key = 1 or _key = 3 > > http://127.0.0.1:8080/ignite?cmd=qryfldexe&pageSize=10& > cacheName=Person&qry=select%20firstName%2C%20lastName% > 20from%20Person%20where%20_key%20%3D%201%20or%20_key%20%3D%203 > > {"successStatus":0,"error":null,"sessionToken":null," > response":{"items":[["John1","Doe1"],["John3","Doe3"]]," > last":true,"fieldsMetadata":[{"schemaName":"Person"," > typeName":"PERSON","fieldName":"FIRSTNAME","fieldTypeName":" > java.lang.String"},{"schemaName":"Person","typeName":"PERSON","fieldName" > :"LASTNAME","fieldTypeName":"java.lang.String"}],"queryId":4}} > > 2)get command return the value of some key: > > http://127.0.0.1:8080/ignite?cmd=get&cacheName=Person&key=3 > > {"successStatus":0,"affinityNodeId":"37f9d00d- > 8a7a-4db4-a1af-16471a548ce1","error":null,"sessionToken": > null,"response":{"firstName":"John3","lastName":"Doe3","id":"3"}} > > 3)getall command return several values for some keys > > http://127.0.0.1:8080/ignite?cmd=getall&cacheName=Person&k1=1&k2=2 > > {"successStatus":0,"affinityNodeId":null,"error": > null,"sessionToken":null,"response":{"1":{"firstName":" > John1","lastName":"Doe1","id":"1"},"2":{"firstName":"John2", > "lastName":"Doe2","id":"2"}}} > > Hope that it will help you. > > BR, > Andrei > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >