Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Error al realizar la persistencia

presento el siguiente error, pero no se a que se debeaca les comparto el persistence.xlm

<?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.hbm2ddl.auto" value="update"/>  
            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>

        </properties>
    </persistence-unit>
</persistence>

este es el de registroDeProducto

package com.latam.alura.tienda.prueba;

import java.math.BigDecimal;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;

import com.latam.alura.tienda.modelo.producto;

public class registroDeProducto {

    public static void main(String[] args) {
        producto celular= new producto();
        celular.setNombre("Samsung");
        celular.setDescripcion("telefono usado");
        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();
    }

}

y producto

package com.latam.alura.tienda.modelo;

import java.math.BigDecimal;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@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;
    }
}

no encuentro el error.

5 respuestas

¡Hola Estudiante!

El error que estás experimentando se debe al hecho de que no se ha encontrado la tabla "productos" en la base de datos. Esto puede deberse a que la tabla no se ha creado correctamente o a que el nombre de la tabla en la base de datos es diferente al nombre de la tabla en la clase producto.

Para resolver este problema, asegúrate de que la tabla "productos" se haya creado correctamente en la base de datos y de que el nombre de la tabla en la clase producto coincida con el nombre de la tabla en la base de datos.

También te sugiero que verifiques que la conexión con la base de datos sea correcta y que el archivo persistence.xml esté configurado correctamente.

Espero que esto te ayude a resolver tu problema. ¡Buena suerte y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

He copiado y realizado el codigo tal cual lo tiene el instructor y tambien he tomado de los que dejan para descargar y sigo teniendo el mismo problema, estoy estancado en esta parte y no he podido avanzar porque eso no me ha dejado.

Ya encontre mi error. Gracias.

Cual era tu error? Tengo el mismo problema :(

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.latam.alura.tienda</groupId>
  <artifactId>tienda</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.1</version>
              <configuration>
                  <release>11</release>
              </configuration>
          </plugin>
      </plugins>
  </build>

    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.6.14.Final</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>2.1.214</version>
***#             <scope>test</scope>*** tenia este test en el poom
        </dependency>

    </dependencies>

</project>

tenia ese error en el test lo borre y la versión en el build la tenia mala, y con ese corregi el problema de conexion