code: @Override
      @SuppressWarnings("unchecked")
      public I getId() {
          return identityFields.get(getClass())
                  .map(f -> (I) ReflectUtils.getValue(f, this))
                  .orElse(null);
      }
docs: Returns the identifier of the entity if present. Starting from the current class and going up
  in the hierarchy, this method tries to find: <ul> <li>A field annotated with {@link
  Identity},</li> <li>Then if not found, a field named "id".</li> </ul>
  
  <p>If the entity the identity field does not satisfy any of the conditions above, this method
  must be overridden to return the entity identity value. </p>
  
  @return the value of the identity field if found, null otherwise.