@Override
  public void appendDataInfluences(List<Object> entities, Class<?> beanDefinition) {
    String tableName = ApolloAuditUtil.getApolloAuditLogTableName(beanDefinition);
    if (Objects.isNull(tableName) || tableName.equals("")) {
      return;
    }
    List<Field> dataInfluenceFields = ApolloAuditUtil.getAnnotatedFields(
        ApolloAuditLogDataInfluenceTableField.class, beanDefinition);
    Field idField = ApolloAuditUtil.getPersistenceIdFieldByAnnotation(beanDefinition);
    entities.forEach(e -> {
      try {
        idField.setAccessible(true);
        String tableId = idField.get(e).toString();
        for (Field f : dataInfluenceFields) {
          f.setAccessible(true);
          String val = String.valueOf(f.get(e));
          String fieldName = f.getAnnotation(ApolloAuditLogDataInfluenceTableField.class).fieldName();
          appendDataInfluence(tableName, tableId, fieldName, val);
        }
      } catch (IllegalAccessException ex) {
        throw new IllegalArgumentException("failed append data influence, "
            + "might due to wrong beanDefinition for entity audited", ex);
      }
    });
  }
@Test
  public void testAppendDataInfluencesCaseWrongBeanDefinition() {
    List<Object> entities = new ArrayList<>();
    entities.add(new Object());
    assertThrows(IllegalArgumentException.class, () -> {
      api.appendDataInfluences(entities, MockDataInfluenceEntity.class);
    });

  }