[
https://issues.apache.org/jira/browse/IGNITE-6280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Ozerov updated IGNITE-6280:
------------------------------------
Fix Version/s: (was: 2.3)
> 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
> 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
(v6.4.14#64029)