private static boolean atualizarCarencia(Segurado segurado, Long idTitular) throws Exception {
    String sqlConsignacao =
        "select min(c.dataDoCredito) from ConsignacaoSegurado c  where c.titular.idSegurado = :idTitular "
            + "and c.statusConsignacao  = 'P' and c.dataDoCredito >= :dataAdesao";

    String sqlCobranca =
        "select min(c.dataPagamento) from Cobranca c where c.titular.idSegurado = :idTitular  "
            + "and descricao = 'Pago(a)' and c.dataPagamento >= :dataAdesao";

    Query queryConsignacao = HibernateUtil.currentSession().createQuery(sqlConsignacao);
    Query queryCobranca = HibernateUtil.currentSession().createQuery(sqlCobranca);

    queryConsignacao.setLong("idTitular", idTitular);
    queryConsignacao.setDate("dataAdesao", segurado.getDataAdesao());

    Date inicioCarencia = (Date) queryConsignacao.uniqueResult();

    if (inicioCarencia == null) {
      queryCobranca.setLong("idTitular", idTitular);
      queryCobranca.setDate("dataAdesao", segurado.getDataAdesao());
      inicioCarencia = (Date) queryCobranca.uniqueResult();
    }

    if (inicioCarencia != null) {
      System.out.println(segurado.getNumeroDoCartao() + " - " + inicioCarencia);
      segurado.setInicioDaCarencia(inicioCarencia);
      ImplDAO.save(segurado);
      return true;
    }
    return false;
  }
  public Boolean validate() throws ValidateException {
    if ((this.getIdInss() != null)) {
      Inss imposto = ImplDAO.getFromBase(this);
      if (!(Utils.compararCompetencia(imposto.getCompetencia(), this.getCompetencia()) == 0))
        throw new ValidateException("Não é possível alterar a competência de um imposto.");

      if (Utils.compararCompetencia(this.getCompetencia(), new Date()) <= 0)
        throw new ValidateException("Não é possível alterar os valores deste imposto.");

    } else {
      SearchAgent sa = new SearchAgent();
      sa.addParameter(new Equals("competencia", this.getCompetencia()));
      List<Inss> impostos = sa.list(Inss.class);
      if (!impostos.isEmpty())
        throw new ValidateException("Já existe um imposto cadastrado para esta competência.");
    }
    return super.validate();
  }
 /**
  * Método do 3º step-method
  *
  * @param faturamento
  * @throws Exception
  */
 public void conferirDados(AbstractFaturamento faturamento) throws Exception {
   ImplDAO.save(faturamento);
 }