Exception in thread "main" java.lang.ExceptionInInitializerError
at com.latam.alura.tienda.prueba.RegistroDeProducto.registrarProducto(RegistroDeProducto.java:36)
at com.latam.alura.tienda.prueba.RegistroDeProducto.main(RegistroDeProducto.java:17)
Caused by: org.hibernate.DuplicateMappingException: The [com.latam.alura.tienda.modelo.Producto] and [com.mx.alura.tienda.modelo.Producto] entities share the same JPA entity name: [Producto] which is not allowed!
at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.addEntityBinding(InFlightMetadataCollectorImpl.java:311)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:813)
at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:225)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:239)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:282)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1460)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1494)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at com.latam.alura.tienda.utils.JPAUtils.<clinit>(JPAUtils.java:10)
De igual manera comparto el RegistroDeProducto
public class RegistroDeProducto {
public static void main(String[] args) {
registrarProducto();
EntityManager em = JPAUtils.getEntityManager();
ProductoDao productoDao = new ProductoDao(em);
Producto producto = productoDao.consultaPorId(1l);
System.out.println(producto.getNombre());
//List<Producto> productos = productoDao.consultarTodo();
List<Producto> productos = productoDao.consultaPorNombre("Xiaomi");
//List<Producto> productos = productoDao.consultarPorNombreDeCategoria("CELULARES");
productos.forEach(prod->System.out.println(prod.getDescripcion()));
}
private static void registrarProducto() {
Categoria celulares = new Categoria("CALULARES");
Producto celular = new Producto("Xiaomi", "Calidad precio", new BigDecimal("300"), celulares);
EntityManager em = JPAUtils.getEntityManager();
ProductoDao productoDao = new ProductoDao(em);
CategoriaDao categoriaDao = new CategoriaDao(em);
em.getTransaction().begin();
categoriaDao.guardar(celulares);
productoDao.guardar(celular);
em.getTransaction().commit();
em.close();
}
}