code: public void delete(Object object, DynamoDBMapperConfig config) {
          config = mergeConfig(config);
  
          Class<?> clazz = object.getClass();
  
          String tableName = getTableName(clazz, config);
  
          Method hashKeyGetter = reflector.getHashKeyGetter(clazz);
          AttributeValue hashKeyElement = getHashKeyElement(safeInvoke(hashKeyGetter, object), hashKeyGetter);
  
          AttributeValue rangeKeyElement = null;
          Method rangeKeyGetter = reflector.getRangeKeyGetter(clazz);
          if ( rangeKeyGetter != null ) {
              rangeKeyElement = getRangeKeyElement(safeInvoke(rangeKeyGetter, object), rangeKeyGetter);
          }
  
          Key objectKey = new Key().withHashKeyElement(hashKeyElement).withRangeKeyElement(rangeKeyElement);
  
          /*
           * If there is a version field, make sure we assert its value. If the
           * version field is null (only should happen in unusual circumstances),
           * pretend it doesn't have a version field after all.
           */
          Map<String, ExpectedAttributeValue> expectedValues = new HashMap<String, ExpectedAttributeValue>();
          if ( config.getSaveBehavior() != SaveBehavior.CLOBBER ) {
              for ( Method method : reflector.getRelevantGetters(clazz) ) {
  
                  if ( reflector.isVersionAttributeGetter(method) ) {
                      Object getterResult = safeInvoke(method, object);
                      String attributeName = reflector.getAttributeName(method);
  
                      ExpectedAttributeValue expected = new ExpectedAttributeValue();
                      AttributeValue currentValue = getSimpleAttributeValue(method, getterResult);
                      expected.setExists(currentValue != null);
                      if ( currentValue != null )
                          expected.setValue(currentValue);
                      expectedValues.put(attributeName, expected);
                      break;
                  }
              }
          }
  
          db.deleteItem(applyUserAgent(new DeleteItemRequest().withKey(objectKey).withTableName(tableName).withExpected(expectedValues)));
      }
docs: Deletes the given object from its DynamoDB table.
  
  @param config
  Config override object. If {@link SaveBehavior#CLOBBER} is
  supplied, version fields will not be considered when deleting
  the object.