A la hora de termianar la sección "Persistiendo una entidad #1" todo el código funciona correctamente, no es hasta la sección "Persistiendo una entidad #2" que al utilizar "em.getTransaction().begin();" que me arroja los errores que se muestran en las imagenes.
Alguien me podría ayudar a comprender qué es lo que está sucediendo?
RegistroDeProducto.java
package com.latam.alura.tienda.prueba;
import java.math.BigDecimal;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import com.latam.alura.tienda.modelo.Producto;
public class RegistroDeProdcuto {
public static void main(String[] args) {
Producto celular = new Producto();
celular.setNombre("Samsung");
celular.setDescripcion("A33");
celular.setPrecio(new BigDecimal("1000"));
EntityManagerFactory factory = Persistence.createEntityManagerFactory("tienda");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
em.persist(celular);
em.getTransaction().commit();
em.close();
}
}
Producto.java
package com.latam.alura.tienda.modelo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
@Entity
@Table(name="productos")
public class Producto{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String nombre;
private String descripcion;
private BigDecimal precio;
public Long getId() { return id;}
public void setId(Long id) { this.id = id;}
public String getNombre() { return nombre;}
public void setNombre(String nombre) {this.nombre = nombre;}
public String getDescripcion() {return descripcion;}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public BigDecimal getPrecio() {return precio;}
public void setPrecio(BigDecimal precio) {this.precio = precio;}
}
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="tienda" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:tienda"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>