package br.com.financas.teste;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import br.com.financas.model.Conta;
import br.com.financas.modelo.util.JPAUtil;
public class TesteMovimentacaoConta {
/**
* @param args
*/
public static void main(String[] args) {
EntityManager em = new JPAUtil().getEntityManager();
Conta conta1 = em.find(Conta.class, 1);
System.out.println(conta1.getMovimentacoes().size());
String jpql = "select c from Conta c join fetch c.movimentacoes where c.id = 1";
Query query = em.createQuery(jpql);
List<Conta> todasAsContas = query.getResultList();
for (Conta conta : todasAsContas) {
System.out.println("Titular: " + conta.getTitular());
System.out.println("Movimentacoes: ");
System.out.println(conta.getMovimentacoes());
}
}
}
em cada iteracao dentro do foreach percebi que esta sendo realizada uma nova consulta no banco seguindo o N+1, porém na minha query estou utilizando o mesmo exemplo da aula. alguma explicação para tal ocorrido ou solução ?