Update put method to support field mapping in aerospike module
Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/eae36f47 Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/eae36f47 Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/eae36f47 Branch: refs/heads/master Commit: eae36f4752f0e22465df552b1c8da1cb5db347fb Parents: 13f252e Author: nishadi <[email protected]> Authored: Mon Jun 19 21:55:15 2017 +0530 Committer: nishadi <[email protected]> Committed: Tue Jun 20 17:33:36 2017 +0530 ---------------------------------------------------------------------- .../gora/aerospike/store/AerospikeStore.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/eae36f47/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java ---------------------------------------------------------------------- diff --git a/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java b/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java index c452857..df2f38d 100644 --- a/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java +++ b/gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java @@ -91,18 +91,21 @@ public class AerospikeStore<K, T extends PersistentBase> extends DataStoreBase<K return null; } - @Override public void put(K key, T value) { + @Override public void put(K key, T persistent) { Key recordKey = new Key(aerospikeParameters.getAerospikeMapping().getNamespace(), aerospikeParameters.getAerospikeMapping().getSet(), Value.get(key)); - List<Field> fields = value.getSchema().getFields(); - + List<Field> fields = persistent.getSchema().getFields(); for (int i = 0; i < fields.size(); i++) { - - // In retrieving the bin name, it is checked whether the server is single bin valued - String binName = aerospikeParameters.getBinName(fields.get(i).name()); - Bin bin = getBin(binName, value.get(i), fields.get(i)); + String mappingBinName = aerospikeParameters.getAerospikeMapping().getBinMapping() + .get(fields.get(i).name()); + if (mappingBinName == null) { + throw new RuntimeException( + "Aerospike mapping for field [" + persistent.getClass().getName() + "#" + fields + .get(i).name() + "] not found. Wrong gora-aerospike-mapping.xml?"); + } + Bin bin = getBin(mappingBinName, persistent.get(i), fields.get(i)); aerospikeClient .put(aerospikeParameters.getAerospikeMapping().getWritePolicy(), recordKey, bin); }
