package br.com.alura.loja.testes.main;
import java.math.BigDecimal;
import javax.persistence.EntityManager;
import br.com.alura.loja.dao.CategoriaDao;
import br.com.alura.loja.dao.ProdutoDao;
import br.com.alura.loja.modelo.Categoria;
import br.com.alura.loja.modelo.Produto;
import br.com.alura.loja.util.JPAUtil;
public class ConsultaProduto {
public static void main(String[]args) {
cadastrarProduto() ;
Long id = 1L;
EntityManager em = JPAUtil.getEntityManager();
ProdutoDao produtoDao = new ProdutoDao(em);
Produto p = produtoDao.buscarPorId(1L);
System.out.println(p.getPreco());
}
private static void cadastrarProduto() {
Categoria cat = new Categoria("Celulares");
Produto celular = new Produto("Xaiomi Redmi 9", "òtimo Celular", new BigDecimal("800"), cat);
EntityManager em = JPAUtil.getEntityManager();
CategoriaDao categoriaDao = new CategoriaDao(em);
ProdutoDao produtoDao = new ProdutoDao(em);
em.getTransaction().begin();
categoriaDao.cadastrar(cat);
produtoDao.cadastrar(celular);
em.getTransaction().commit();
em.close();
}
}
package br.com.alura.loja.dao;
import javax.persistence.EntityManager;
import br.com.alura.loja.modelo.Produto;
public class ProdutoDao {
private EntityManager em;
public ProdutoDao(EntityManager em) {
this.em = em;
}
public void cadastrar(Produto produto) {
this.em.persist(produto);
}
public void atualizar(Produto produto) {
this.em.merge(produto);
}
public void remover (Produto produto) {
produto = em.merge(produto);
this.em.remove(produto);
}
public Produto buscarPorId(Long id) {
return em.find(Produto.class, id);
}
}
jun 01, 2021 10:28:19 PM org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService
INFO: HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
Hibernate: insert into Categorias (id, nome) values (null, ?)
Hibernate: insert into Produtos (id, categoria_id, dateCadastro, descricao, nome, preco) values (null, ?, ?, ?, ?, ?)
Hibernate: select produto0_.id as id1_1_0_, produto0_.categoria_id as categori6_1_0_, produto0_.dateCadastro as datecada2_1_0_, produto0_.descricao as descrica3_1_0_, produto0_.nome as nome4_1_0_, produto0_.preco as preco5_1_0_, categoria1_.id as id1_0_1_, categoria1_.nome as nome2_0_1_ from Produtos produto0_ left outer join Categorias categoria1_ on produto0_.categoria_id=categoria1_.id where produto0_.id=?
jun 01, 2021 10:28:19 PM org.hibernate.event.internal.DefaultLoadEventListener doOnLoad
INFO: HHH000327: Error performing load command
org.hibernate.InstantiationException: No default constructor for entity: : br.com.alura.loja.modelo.Produto
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:85)
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:105)