Hola tengo un problema con la activación de tablas de la base de generación automática de modelos de Java clases @Entity. He probado casi todo.
He creado proyecto experto en IntelliJ IDEA al principio me he descargado la aplicación API JavaEE 8 que estoy usando.
Estoy usando GlassFish Server 5.0 como un proveedor de aplicación ee 8 Java y base de datos MySQL.
Mi Estructura del proyecto:
Mis pom.xml se ve así:
<?xml version="1.0" encoding="UTF-8"?>
<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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zerg.web</groupId>
<artifactId>PlanYourTime</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Mi modelo de clase @Entity wchich Quiero generar tablas en mi base de datos MySQL.
package model;
import javax.persistence.*;
@Entity
@TableGenerator(name = "USER")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "USERID")
private int userId;
@Column(name = "USERNAME")
private String username;
@Column(name = "PASSWORD")
private String password;
@Column(name = "EMAIL")
private String email;
public User(String username, String password, String email) {
this.username = username;
this.password = password;
this.email = email;
}
public User() {
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Mi archivo persistence.xml src / main / java / META-INF / se parece a:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence 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"
version="2.2">
<persistence-unit name="myPu" transaction-type="JTA">
<jta-data-source>jdbc/PlanYourTime</jta-data-source>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
<property name="javax.persistence.schema-generation.create-source" value="metadata"/>
<property name="javax.persistence.schema-generation.drop-source" value="metadata"/>
<property name="javax.persistence.sql-load-script-source" value="META-INF/load-script.sql"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
</properties>
</persistence-unit>
Y en mi página de administración del servidor GlassFish También he añadido Jdbc resourcure y de conexiones JDBC de esta manera:
Y mis estructura de artefactos de guerra se ve como en IntelliJ IDEA, que despliego a glassfish 5.0 servidor:
Cuando yo era la server.log de GlassFish no consigo ningún error.
Voy a ser muy agradecidos por toda la ayuda.
¿Se ha creado / gestor de la entidad usado? Si no es así, módulo de persistencia no se inició. Hacer un inserto usando gestor de la entidad, o intento:
El uso
eclipselink.deploy-on-startup
de la implementación de configuración en el arranque (en la creación de la EntityManagerFactory) en lugar de que se produzca la primera vez que se crea un EntityManager.