In Ignite 2.x there are two ways to configure collocation: @AffinityKeyMapped annotation and CacheKeyConfiguration bean. Both allow specifying only one field to be used for collocation.
Let's say there is a key class that looks like this:
In this case, there is no way to collocate the data based on a pair of fields (e.g. a and b).
In 3.0, we should have an API that would allow to specify two or more fields to be used for collocation.