[ https://issues.apache.org/jira/browse/IGNITE-6280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Rudyak reassigned IGNITE-6280: ----------------------------------- Assignee: Igor Rudyak (was: Mikhail Cherkasov) > Cassandra ignores AffinityKeyMapped annotation in parent classes. > ----------------------------------------------------------------- > > Key: IGNITE-6280 > URL: https://issues.apache.org/jira/browse/IGNITE-6280 > Project: Ignite > Issue Type: Bug > Components: cassandra > Affects Versions: 2.1 > Reporter: Andrew Mashenkov > Assignee: Igor Rudyak > Priority: Major > Attachments: CassandraConfigTest.java > > > By default, using @AffinityKeyMapped annotation force Ignire to override user > _keyPersistence_ configuration that may cause confusing results. > PFA repro attached. > h3. Description > 1. Let there is 2 keys A and B that has same fields with one difference. Key > A has affinity key in parent class. So, it looks like this. > {code} > class BaseKey { > @AffinityKeyMapped > Object affinityKey > } > {code} > {code} > class A extends BaseKey { > int id; > } > {code} > {code} > class B { > @AffinityKeyMapped > Object affinityKey; > int uid; > } > {code} > 2. Let we make different affinity mapping for Cassandra store, that looks > like a valid case > {code:xml} > <keyPersistence class="..." strategy="POJO"> > <partitionKey> > <field name="affinityKey" column="partID"/> > <field name="uid" column="uid"/> > </partitionKey> > .... > {code} > 3. We have different behavior for these similar cases that makes user > confused. > For key A this will work fine and expected DDL will be generated. > For key B we'll get different DDL as Ignite will remove "_uid_" field from > "_partitionKey_". > So, we should either to not allow Ignite to override key mapping or force > Ignite to check if parent classes has @AffinityKeyMapped annotation. -- This message was sent by Atlassian JIRA (v7.6.3#76005)