@Override
  public void update(final BaseEntity model) throws ServiceException, LogicException {
    final CatalogoServicoDTO catalogoServicoDto = (CatalogoServicoDTO) model;
    final CatalogoServicoDao catalogoServicodao = this.getDao();

    final ServContratoCatalogoServDao servContratoCatalogoServDao =
        new ServContratoCatalogoServDao();
    final InfoCatalogoServicoDao infoCatalogoServicoDao = new InfoCatalogoServicoDao();

    final TransactionControler tc = new TransactionControlerImpl(catalogoServicodao.getAliasDB());

    try {
      this.validaCreate(model);
      catalogoServicodao.setTransactionControler(tc);
      infoCatalogoServicoDao.setTransactionControler(tc);
      servContratoCatalogoServDao.setTransactionControler(tc);

      tc.start();

      catalogoServicodao.update(catalogoServicoDto);
      servContratoCatalogoServDao.deleteByIdServContratoCatalogo(catalogoServicoDto);
      if (catalogoServicoDto.getColServicoContrato() != null
          && !catalogoServicoDto.getColServicoContrato().isEmpty()) {
        ServContratoCatalogoServDTO item = null;
        // varre a lista de serviços
        for (int i = 0; i < catalogoServicoDto.getColServicoContrato().size(); i++) {
          item = catalogoServicoDto.getColServicoContrato().get(i);
          item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico());
          // grava cada item da lista
          servContratoCatalogoServDao.create(item);
        }
      }

      infoCatalogoServicoDao.deleteByIdInfoCatalogo(catalogoServicoDto);
      if (catalogoServicoDto.getColInfoCatalogoServico() != null
          && !catalogoServicoDto.getColInfoCatalogoServico().isEmpty()) {

        InfoCatalogoServicoDTO item = null;
        // varre a lista de serviços
        for (int i = 0; i < catalogoServicoDto.getColInfoCatalogoServico().size(); i++) {
          item = catalogoServicoDto.getColInfoCatalogoServico().get(i);
          item.setIdCatalogoServico(catalogoServicoDto.getIdCatalogoServico());
          // grava cada item da lista
          infoCatalogoServicoDao.create(item);
        }
      }

      tc.commit();

    } catch (final Exception e) {
      e.printStackTrace();
      this.rollbackTransaction(tc, e);
    } finally {
      try {
        tc.close();
      } catch (final Exception e) {
        e.printStackTrace();
      }
    }
  }