docs: private BasicDBObject identifyFieldsToRetrieve(Class<T> entityClass, String viewOfClassName) {
          if (viewOfClassName == null) {
              return null;     // Null is equivalent to retrieving all fields
          }
  
          BasicDBObject fields = new BasicDBObject();
  
          try {
              determineFieldsToRetrieve(entityClass, Class.forName(viewOfClassName), "", fields);
          } catch (ClassNotFoundException e) {
              throw new RuntimeException(e);
          }
  
          if (optimisticLockEnabled) {
              fields.put(OPTIMISTIC_LOCK_VERSION_FIELD, 1);
          }
          
          if (accessControlContextProvider != null) {
              fields.put(ACCESS_CONTROL_FIELD, 1);
          }
          
          if (fields.containsField("id")) {
              fields.remove("id"); // Included by default, no need to specify
          } else {
              fields.put(ID_FIELD, 0); // Need to explicitly exclude it
          }
  
          return fields;
      }