package br.com.alura.loja.testes;
import br.com.alura.loja.dao.CategoriaDao; import br.com.alura.loja.dao.ClienteDao; import br.com.alura.loja.dao.PedidoDao; import br.com.alura.loja.dao.ProdutoDao; import br.com.alura.loja.modelo.*; import br.com.alura.loja.util.JPAUtil; import br.com.alura.loja.vo.RelatorioDeVendasVo;
import javax.persistence.EntityManager; import java.math.BigDecimal; import java.util.List;
public class PerformaceConsultas { public static void main(String[] args) { popularBancoDeDados();
EntityManager em = JPAUtil.getEntityManager();
Pedido pedido = em.find(Pedido.class, 1l);
System.out.println(pedido.getItens().size() );
}
private static void popularBancoDeDados() {
Categoria celulares = new Categoria("CELULARES");
Categoria videogames = new Categoria("VIDEOGAMES");
Categoria informatica = new Categoria("INFORMATICA");
Produto celular = new Produto("IPHONE", "Muito Legal", new BigDecimal("800"), celulares);
Produto videogame = new Produto("PS5", "Viciante", new BigDecimal("4000"), videogames);
Produto macbook = new Produto("MacbookPRO", "Computador que vou comprar com certeza", new BigDecimal("80000"), informatica);
Cliente cliente = new Cliente("Israel", "123456 ");
Pedido pedido = new Pedido(cliente);
pedido.adicionarItem(new ItemPedido(10, pedido, celular));
pedido.adicionarItem(new ItemPedido(40, pedido, videogame));
Pedido pedido2 = new Pedido(cliente);
pedido2.adicionarItem(new ItemPedido(2, pedido,macbook ));
EntityManager em = JPAUtil.getEntityManager();
ProdutoDao produtoDao = new ProdutoDao(em);
CategoriaDao categoriaDao = new CategoriaDao(em);
ClienteDao clienteDao = new ClienteDao(em);
ProdutoDao pedidoDao = new ProdutoDao(em);
em.getTransaction().begin();
categoriaDao.cadastrar(celulares);
categoriaDao.cadastrar(videogames);
categoriaDao.cadastrar(informatica);
produtoDao.cadastrar(celular);
produtoDao.cadastrar(videogame);
produtoDao.cadastrar(macbook);
clienteDao.cadastrar(cliente);
em.getTransaction().commit();
em.close();
}
}
CONSOLE:
Hibernate: insert into categorias (id, nome) values (default, ?) Hibernate: insert into categorias (id, nome) values (default, ?) Hibernate: insert into categorias (id, nome) values (default, ?) Hibernate: insert into produtos (id, categoria_id, dataCadastro, descricao, nome, preco) values (default, ?, ?, ?, ?, ?) Hibernate: insert into produtos (id, categoria_id, dataCadastro, descricao, nome, preco) values (default, ?, ?, ?, ?, ?) Hibernate: insert into produtos (id, categoria_id, dataCadastro, descricao, nome, preco) values (default, ?, ?, ?, ?, ?) Hibernate: insert into clientes (id, cpf, nome) values (default, ?, ?) Hibernate: select pedido0_.id as id1_3_0_, pedido0_.cliente_id as cliente_4_3_0_, pedido0_.data as data2_3_0_, pedido0_.valor_total as valor_to3_3_0_ from pedidos pedido0_ where pedido0_.id=? Exception in thread "main" java.lang.NullPointerException: Cannot invoke "br.com.alura.loja.modelo.Pedido.getItens()" because "pedido" is null at br.com.alura.loja.testes.PerformaceConsultas.main(PerformaceConsultas.java:21)
Process finished with exit code 1