docs: @Override
      public void setValue(final Object selectedItemId) {
          if (selectedItemId != null) {
              // Can happen during validation, leading to multiple database
              // queries, in order to get the caption property
              if (selectedItemId.equals(previousValue)) {
                  return;
              }
              selectedValueCaption = Optional.ofNullable(getContainerProperty(selectedItemId, getItemCaptionPropertyId()))
                      .map(Property::getValue).map(String.class::cast).orElse("");
          }
  
          super.setValue(selectedItemId);
          previousValue = (Long) selectedItemId;
      }