private void updateConjuge(AssociadoVO associado) throws SmartEnvException, SmartAppException {

    if (associado.getConjuge() != null && associado.getConjuge().getCodigo() != null) {

      pessoaRN.update(associado.getConjuge());

      conjugeRN.update(associado.getConjuge());
    }
  }
  public AssociadoVO findByPrimaryKey(AssociadoVO associado)
      throws SmartEnvException, SmartAppException {

    associado = associadoDAO.findByPrimaryKey(associado);

    // solucao temporaria. por alguma razao consulta esta colocando um espaco apos o grupo sanguineo
    if (associado.getGrupoSanguineo() != null) {
      associado.setGrupoSanguineo(associado.getGrupoSanguineo().trim());
    }

    associado.setFilhos(filhoRN.findByAssociado(associado));
    associado.setDependentes(dependenteRN.findByAssociado(associado));

    return associado;
  }
  private void updateDependentes(AssociadoVO associado)
      throws SmartEnvException, SmartAppException {
    dependenteRN.removeByAssociado(associado);

    if (associado.getDependentes() != null && associado.getDependentes().size() > 0) {

      for (DependenteVO dependente : associado.getDependentes()) {

        DependenteVO lDependenteVO = dependenteRN.findByPrimaryKey(dependente);

        if (lDependenteVO != null && lDependenteVO.getCodigo() != null) {
          dependenteRN.update(dependente);
        } else {
          dependente.setAssociado(associado);
          dependenteRN.insert(dependente);
        }
      }
    }
  }
  private void updateFilhos(AssociadoVO associado) throws SmartEnvException, SmartAppException {

    filhoRN.removeByAssociado(associado);

    if (associado.getFilhos() != null) {

      for (FilhoVO filho : associado.getFilhos()) {

        FilhoVO lFilho = filhoRN.findByPrimaryKey(filho);

        if (lFilho != null && lFilho.getCodigo() != null) {

          filhoRN.update(filho);
        } else {
          filho.setAssociado(associado);

          filhoRN.insert(filho);
        }
      }
    }
  }