You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrew Mashenkov (JIRA)" <ji...@apache.org> on 2017/09/06 13:03:00 UTC
[jira] [Created] (IGNITE-6280) Cassandra ignores AffinityKeyMapped
annotation in parent classes.
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)