Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] No muestra los mensajes en consola.

No sé si hay algo mal con el código, pero no me muestra ni errores, ni siquiera los sysout que le puse antes, simplemente muestra lo de las imágenes, esto solo me pasa en la versión Enterprise de Eclipse como se pidió, así mismo, tampoco pude ejecutarlo en la versión Java for Devs, porque al buscar los archivos dentro de la carpeta del workspace, no se encuentra ninguno, sólo aparecen en el explorador de Enterprise, ni siquiera de JavaxDevs, ¿alguna explicación o respuesta para esto? Ando trabado por eso, ya que no me muestra nada...

Using platform enconding; Cp1252 actually; to copy filtered resources, i.e. build is platform dependent!; Copying 1/0 resourceNo connection specified for project. No database-specific validation will be performed; Project 'tienda' has no explicit encoding set.

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 RegistroDeProducto {

    public static void main(String[] args) {

        Producto celular = new Producto();
celular.setNombre("Xiaomi Redmi");
celular.setDescripcion("Producto usado");
celular.setPrecio(new BigDecimal("800"));

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

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

pom.xml:

<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.0</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>
        </dependency>
    </dependencies>

</project>
1 respuesta
solución!

¡Hola Marcos!

Por lo que puedo ver en tu código, no hay nada malo en él. El problema que estás teniendo puede estar relacionado con la configuración de tu entorno de desarrollo.

En primer lugar, si no estás viendo los mensajes en la consola, asegúrate de que estás ejecutando la clase "RegistroDeProducto" como una aplicación Java. También puedes intentar imprimir un mensaje simple en la consola antes de la creación del objeto "Producto" para verificar que la consola está funcionando correctamente.

En cuanto a la versión de Eclipse que estás utilizando, puede ser que la versión Enterprise tenga una configuración diferente a la versión Java for Devs. Asegúrate de que la versión Enterprise tenga acceso a los archivos necesarios para ejecutar tu aplicación.

Por último, asegúrate de que tu archivo persistence.xml esté en la ubicación correcta y que esté correctamente configurado para conectarse a tu base de datos.

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