public Interventi updateIntervento(Interventi interventi) throws ApplicationException {

    // long id = interventi.getCup().getIdCup().longValue();
    if (interventi.getUtenti() != null) {
      Utenti utenteResp = interventiDAO.findUtenteById(interventi.getUtenti().getIdUtente());
      if (utenteResp != null) interventi.setUtenti(utenteResp);
    }

    Long idAttivitaStandard = interventi.getAttivitaStandard().getIdAttivitaStandard();
    AttivitaStandard attivitaStandard = this.attivitaStandardDAO.findById(idAttivitaStandard);
    interventi.setAttivitaStandard(attivitaStandard);

    // ricarica l' intervento padre dal DB per evitare 'object references an unsaved transient
    // instance...'
    Interventi interventoPadre = interventi.getInterventi();
    if (interventoPadre != null) {
      interventoPadre = interventiDAO.findById(interventoPadre.getIdIntervento());
      interventi.setInterventi(interventoPadre);
    }

    // ricarica il Cup a partire dal suo id
    Cup cup = interventi.getCup();
    cup = this.cupDAO.findById(cup.getIdCup());
    interventi.setCup(cup);

    interventiDAO.update(interventi);
    // cupDAO.update(interventi.getCup());
    return interventi;
  }
  public Interventi insertIntervento(Interventi interventi, Utenti utenteLoggato) throws Exception {
    Session session = interventiDAO.getSession();

    Transaction tx = session.beginTransaction();
    try {
      Long idAttivitaStandard = interventi.getAttivitaStandard().getIdAttivitaStandard();
      AttivitaStandard attivitaStandard = this.attivitaStandardDAO.findById(idAttivitaStandard);
      interventi.setAttivitaStandard(attivitaStandard);

      // ricarica l' intervento padre dal DB per evitare 'object references an unsaved transient
      // instance...')
      Interventi interventoPadre = interventi.getInterventi();
      if (interventoPadre != null) {
        interventoPadre = interventiDAO.findById(interventoPadre.getIdIntervento());
        interventi.setInterventi(interventoPadre);
      }

      // ricarica il Cup a partire dal suo id
      Cup cup = interventi.getCup();
      cup = this.cupDAO.findById(cup.getIdCup());
      interventi.setCup(cup);
      Long idIntervento = interventiDAO.save(interventi, session);
      // interventi.setIdIntervento(idIntervento);

      // recupero l' id dell' utente Responsabile e inserisco un record in AbilitazioniUtente per
      // abilitare l' utente al progetto
      // SOSPESo. Lo si farà con un TRIGGER
      //			if (interventi.getUtenti()!=null){
      //				//(lo strumento ancora non c'è perchè l' intervento non ha ancora una VersInterv)
      //				AbilitazioniUtente abilitazioniUtente=new AbilitazioniUtente();
      //				abilitazioniUtente.setUtenti(interventi.getUtenti());
      //				abilitazioniUtente.setInterventi(interventi);
      //
      //				abilitazioniUtente.setIdFunzioneEseguita(new Long("170"));
      //				abilitazioniUtente.setIdUtenteInserimento(utenteLoggato.getIdUtente());
      //				abilitazioniUtente.setTimestampInserimento(new Date());
      //
      //				abilitazioniUtenteDAO.save(abilitazioniUtente, session);
      //			}
      tx.commit();

    } catch (Exception e) {
      tx.rollback();
      e.printStackTrace();
      throw new Exception(e);
    } finally {
      session.close();
    }
    return interventi;
  }