diff --git a/conf/cassandra3_case_sensitive_schema.txt b/conf/cassandra3_case_sensitive_schema.txt index e2db99638..c3083f023 100644 --- a/conf/cassandra3_case_sensitive_schema.txt +++ b/conf/cassandra3_case_sensitive_schema.txt @@ -114,7 +114,7 @@ CREATE TABLE occ.qa ( "userDisplayName" text, "userEmail" text, uuid text, - PRIMARY KEY (rowkey, "userId", code) + PRIMARY KEY (rowkey, "userId", code, relatedUuid) ) WITH CLUSTERING ORDER BY ("userId" ASC, code ASC) AND bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} @@ -721,4 +721,4 @@ CREATE TABLE occ.loc_new ( AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 - AND speculative_retry = '99PERCENTILE'; \ No newline at end of file + AND speculative_retry = '99PERCENTILE'; diff --git a/src/main/scala/au/org/ala/biocache/dao/OccurrenceDAOImpl.scala b/src/main/scala/au/org/ala/biocache/dao/OccurrenceDAOImpl.scala index 650441902..d82801671 100644 --- a/src/main/scala/au/org/ala/biocache/dao/OccurrenceDAOImpl.scala +++ b/src/main/scala/au/org/ala/biocache/dao/OccurrenceDAOImpl.scala @@ -902,7 +902,7 @@ class OccurrenceDAOImpl extends OccurrenceDAO { if (!record.isEmpty) { //preserve the raw record - val qaMap = qualityAssertionProperties ++ Map("snapshot" -> Json.toJSON(record.get)) + val qaMap = qualityAssertionProperties ++ (if (qualityAssertion.relatedUuid == null || qualityAssertion.relatedUuid.isEmpty()) Map("relatedUuid" -> "") else Map()) ++ Map("snapshot" -> Json.toJSON(record.get)) persistenceManager.put(rowKey, qaEntityName, qaMap, true, false) val systemAssertions = getSystemAssertions(rowKey) val userAssertions = getUserAssertions(rowKey) @@ -969,7 +969,8 @@ class OccurrenceDAOImpl extends OccurrenceDAO { Map( "rowkey" -> toBeDeleted.referenceRowKey, "userId" -> toBeDeleted.getUserId, - "code" -> toBeDeleted.code.toString + "code" -> toBeDeleted.code.toString, + (if (Config.caseSensitiveCassandra) "relatedUuid" else "relateduuid") -> toBeDeleted.getRelatedUuid ), qaEntityName )