Erro de lógica - for

Pessoal, estou com dúvida para controlar o loop ao salvar no caso abaixo. Por exemplo tenho 3 elementos, uma leitura1 e uma leitura 2 para cada um deles. Por exemplo ao salvar eu preciso que salve apenas 3 linhas no banco sendo:

elemento 1 - Leitura 1 - Leitura 2
elemento 2 - leitura 1 - leitura 2
elemento 3 - leitura 1 - leitura2

No caso abaixo ele esta pegando as 3 leitura1 e 2 e atribuindo para cada elemento, portanto, esta criando 9 linhas na tabela.

public void salvar() {

		try {

			for (int i = 0; i < listaElemento.size(); i++) {
				for (int y = 0; y < listaLeitura1.size(); y++) {
					for (int x = 0; x < listaLeitura2.size(); x++) {

						item = new ItemResultado();

						item.setElemento(listaElemento.get(i));
						item.setAmostra(amostraSelecionadaLeitura);
						item.setResultado(resultadoSalvar);
						item.setLeitura1(listaLeitura1.get(y));
						item.setLeitura2(listaLeitura2.get(x));

						resultadoSalvar
								.setSocilicitacaoDeAnalise(solicitacaoSelecionada);

						abDAO.saveOrUpdate(resultadoSalvar);
						abDAO.saveOrUpdate(item);

					}
				}

			}

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

Desde já agradeço.

Abraços.

Renan.

Se eu entendi direito você só precisa de 1 FOR
que é o:


for (int i = 0; i < listaElemento.size(); i++) {  

e pegar ‘estaticamente’ (FINAL é uma palavra melhor kkk) o ‘leitura1’ e ‘leitura2’.

ahh, seria tipo:

    public void salvar() {  
      
            try {  
      
                for (int i = 0; i < listaElemento.size(); i++) { 
 
                           item = new ItemResultado();  
      
                            item.setElemento(listaElemento.get(i));  
                            item.setAmostra(amostraSelecionadaLeitura);  
                            item.setResultado(resultadoSalvar); 
 
                            item.setLeitura1(listaLeitura1.get(0));  //primeiro elemento de cada lista??
                            item.setLeitura2(listaLeitura2.get(0));  // "" ??
      
                            resultadoSalvar  
                                    .setSocilicitacaoDeAnalise(solicitacaoSelecionada);  
      
                            abDAO.saveOrUpdate(resultadoSalvar);  
                            abDAO.saveOrUpdate(item);  

      
                }  
      
            } catch (Exception e) {  
      
                e.printStackTrace();  
      
            }  
      
        }  

Se nao for isso, por favor explique melhor :smiley:
abrazz

Sim é isso mesmo, acabei de conseguir aqui…rsrs…

Obrigado.

Abraços.

Renan.

Coloca [Resolvido] no titulo do teu post inicial :slight_smile:

valeuu!