You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Igor Rudyak (JIRA)" <ji...@apache.org> on 2018/01/30 18:04:00 UTC
[jira] [Commented] (IGNITE-6280) Cassandra ignores
AffinityKeyMapped annotation in parent classes.
[ https://issues.apache.org/jira/browse/IGNITE-6280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16345532#comment-16345532 ]
Igor Rudyak commented on IGNITE-6280:
-------------------------------------
[~amashenkov] thanks for letting me know. I'll look at it.
> 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: Mikhail Cherkasov
> 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)