ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Mashenkov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-6280) Cassandra ignores AffinityKeyMapped annotation in parent classes.
Date Wed, 06 Sep 2017 13:31:01 GMT

     [ https://issues.apache.org/jira/browse/IGNITE-6280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Mashenkov updated IGNITE-6280:
-------------------------------------
    Fix Version/s: 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
>             Fix For: 2.3
>
>
> 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)

Mime
View raw message