code: private Codec getFieldCodec(Class<?> rEntity, Class<? extends RObject> rObjectClass, String fieldName) throws Exception {
          Field field = ClassUtils.getDeclaredField(rEntity, fieldName);
          if (field.isAnnotationPresent(RObjectField.class)) {
              RObjectField anno = field.getAnnotation(RObjectField.class);
              return codecProvider.getCodec(anno, rEntity, rObjectClass, fieldName, config);
          } else {
              REntity anno = ClassUtils.getAnnotation(rEntity, REntity.class);
              return codecProvider.getCodec(anno, (Class<?>) rEntity, config);
          }
      }
docs: WARNING: rEntity has to be the class of @This object.