code: public <H,R> Map<String,AttributeValue> convertKey(final H hashKey, final R rangeKey) {
          final Map<String,AttributeValue> key = new LinkedHashMap<String,AttributeValue>(4);
          final DynamoDBMapperFieldModel<T,H> hk = this.<H>hashKey();
          final AttributeValue hkValue = hashKey == null ? null : hk.convert(hashKey);
          if (hkValue != null) {
              key.put(hk.name(), hkValue);
          } else {
              throw new DynamoDBMappingException(
                  targetType.getSimpleName() + "[" + hk.name() + "]; no HASH key value present"
              );
          }
          final DynamoDBMapperFieldModel<T,R> rk = this.<R>rangeKeyIfExists();
          final AttributeValue rkValue = rangeKey == null ? null : rk.convert(rangeKey);
          if (rkValue != null) {
              key.put(rk.name(), rkValue);
          } else if (rk != null) {
              throw new DynamoDBMappingException(
                  targetType.getSimpleName() + "[" + rk.name() + "]; no RANGE key value present"
              );
          }
          return key;
      }
docs: Creates a new key map from the specified hash and range key.
  @param <H> The hash key type.
  @param <R> The range key type.
  @param hashKey The hash key.
  @param rangeKey The range key (optional if not present on table).
  @return The key map.