Andrew Mashenkov created IGNITE-6280:
----------------------------------------
Summary: 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
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)