Hello! As far as my understanding goes, you have to supply cacheKeyConfiguration in both Java and C++ configuration files, and remove @AffinityKeyMapped from Java CustomKey class (or other ways of specifying it where applicable).
Regards, -- Ilya Kasnacheev 2018-08-09 10:50 GMT+03:00 Floris Van Nee <[email protected]>: > Hi all, > > > > I’m experiencing exactly the same issue as is described in a previous post > on this mailing list: http://apache-ignite-users. > 70518.x6.nabble.com/Affinity-Key-field-is-not-identified- > if-binary-configuration-is-used-on-cache-key-object-td15959.html > > In short – defining an XML config with the appropriate binaryConfiguration > (for Java/C++ interopability) and cacheKeyConfiguration (to define an > affinityKeyFieldName for a certain key type) will fail when running from > C++. Unfortunately, the earlier item on the mailing list didn’t find/post a > solution to the problem. > > > > My custom key type is a class with two String members. I get the following > error when I try to retrieve something from the cache: > > > > An error occurred: Java exception occurred > [cls=org.apache.ignite.binary.BinaryObjectException, > msg=Binary type has different affinity key fields [typeName=CustomKey, > affKeyFieldName1=string_1, affKeyFieldName2=null]] > > > > Running exactly the same from Java works fine. Also, when I remove the > cacheKeyConfiguration part from the XML, it runs fine in both Java and C++ > (but then this runs without the proper affinity key field of course). > > > > It seems like this is a bug, or am I missing something? > > > > -Floris > > >
