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);
        }
      }
    }
  }
  private void insertFilhos(AssociadoAssembler associado)
      throws SmartEnvException, SmartAppException {

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

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

        filho.setAssociado(associado);
        filhoRN.insert(filho);
      }
    }
  }
  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;
  }