public void startUpdate() {

    logger.debug("Entering startUpdate method.");

    if (selected == null) {
      String msg = "Unexpected null value detected for selected row.";
      logger.error(msg);
      throw new RuntimeException(msg);
    }

    // Reloading the entity is required to be sure that the value has not changed since it was
    // read in the data table list of values.
    //
    DettaglioFatturazioneService dfs = ServiceFactory.createService("DettaglioFatturazione");
    selected = dfs.retrieveDeep(selected.getId());

    id = selected.getId();
    codiceCondizioniPagamento =
        selected.getCondizioniPagamento() != null
            ? selected.getCondizioniPagamento().getId()
            : null;
    codiceMetodoPagamento =
        selected.getMetodoPagamento() != null ? selected.getMetodoPagamento().getId() : null;
    codiceIndirizzo = selected.getIndirizzo() != null ? selected.getIndirizzo().getId() : null;
    codiceLayoutStampa =
        selected.getLayoutStampa() != null ? selected.getLayoutStampa().getId() : null;
    validoDa = selected.getValidoDa();
    validoA = selected.getValidoA();
  }