Hibernate não cria tabelas no banco de dados
Boa tarde.
Estou trabalhando em um novo projeto acompanhando um curso on line e esta correndo quase tudo bem, estou usando o windows 10 eo o Eclipse mars 2, na hora em que eu rodo o sistema para criar as tabelas automaticamente pelo hibernate, roda normalmente só que não cria as tabelas: veja as sequencias no depurador:
fev 14, 2018 4:08:05 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.12.Final}
fev 14, 2018 4:08:05 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
fev 14, 2018 4:08:05 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://127.0.0.1:3306/dbdrogaria]
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections
INFO: HHH000115: Hibernate connection pool size: 1 (min=1)
fev 14, 2018 4:08:06 PM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
fev 14, 2018 4:08:07 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources
INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@11bf055’
fev 14, 2018 4:08:08 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:mysql://127.0.0.1:3306/dbdrogaria]
O módulo de criação de id automatico em todas as tabelas:
package br.com.ribeiro.drogaria.domain;
import java.io.Serializable;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@SuppressWarnings(“serial”)
@MappedSuperclass
public class GenericDomain implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int codigo;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
}
O módulo Hibernate.cfg:
<?xml version="1.0" encoding="UTF-8"?>
<property name="connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/dbdrogaria</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<!-- Pool de Conexões -->
<property name="connection.pool_size">1</property>
<!-- dialecto SQL -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Gerenciamento do Contexto das Sessões -->
<property name="current_session_context_class">thread</property>
<!-- Cache de Segundo Nível -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Mostra como SQL Geradas -->
<property name="show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- Cria como tabelas do banco de dados -->
<property name="hbm2ddl.auto">create</property>
<!-- Mapeamento das entidades -->
<mapping class="br.com.ribeiro.drogaria.domain.Estado"/>
<mapping class="br.com.ribeiro.drogaria.domain.Fabricante"/>
<mapping class="br.com.ribeiro.drogaria.domain.Cidade"/>
</session-factory>
O modulo HibernateUtil:
package br.com.ribeiro.drogaria.util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static SessionFactory fabricaDeSessoes = criarfabricaDeSessoes();
public static SessionFactory getfabricaDeSessoes() {
return fabricaDeSessoes;
}
private static SessionFactory criarfabricaDeSessoes() {
try {
Configuration configuracao = new Configuration().configure();
ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build();
SessionFactory fabrica = configuracao.buildSessionFactory(registro);
return fabrica;
} catch (Throwable ex) {
System.err.println("A fábrica de sessões não pode ser criada." + ex);
throw new ExceptionInInitializerError(ex);
}
}
}
O modulo HibernateUtilTest:
package br.com.ribeiro.drogaria.util;
import org.hibernate.Session;
import org.junit.Test;
public class HibernateUtilTest {
@Test
public void conectar(){
Session sessao = HibernateUtil.getfabricaDeSessoes().openSession();
sessao.close();
HibernateUtil.getfabricaDeSessoes().close();
}
}
O único problema é que ele não cria as tabelas no banco de dados, estou usando o MySqlWorkbench e o Xamp.
Alguém pode me dar uma ajuda conto a este problema?
Estou trabalhando em um novo projeto acompanhando um curso on line e esta correndo quase tudo bem, estou usando o windows 10 eo o Eclipse mars 2, na hora em que eu rodo o sistema para criar as tabelas automaticamente pelo hibernate, roda normalmente só que não cria as tabelas: veja as sequencias no depurador:
fev 14, 2018 4:08:05 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.12.Final}
fev 14, 2018 4:08:05 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
fev 14, 2018 4:08:05 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://127.0.0.1:3306/dbdrogaria]
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
fev 14, 2018 4:08:06 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections
INFO: HHH000115: Hibernate connection pool size: 1 (min=1)
fev 14, 2018 4:08:06 PM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
fev 14, 2018 4:08:07 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources
INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@11bf055’
fev 14, 2018 4:08:08 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stop
INFO: HHH10001008: Cleaning up connection pool [jdbc:mysql://127.0.0.1:3306/dbdrogaria]
O módulo de criação de id automatico em todas as tabelas:
package br.com.ribeiro.drogaria.domain;
import java.io.Serializable;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@SuppressWarnings(“serial”)
@MappedSuperclass
public class GenericDomain implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int codigo;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
}
O módulo Hibernate.cfg:
<?xml version="1.0" encoding="UTF-8"?>
<property name="connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/dbdrogaria</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<!-- Pool de Conexões -->
<property name="connection.pool_size">1</property>
<!-- dialecto SQL -->
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- Gerenciamento do Contexto das Sessões -->
<property name="current_session_context_class">thread</property>
<!-- Cache de Segundo Nível -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Mostra como SQL Geradas -->
<property name="show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- Cria como tabelas do banco de dados -->
<property name="hbm2ddl.auto">create</property>
<!-- Mapeamento das entidades -->
<mapping class="br.com.ribeiro.drogaria.domain.Estado"/>
<mapping class="br.com.ribeiro.drogaria.domain.Fabricante"/>
<mapping class="br.com.ribeiro.drogaria.domain.Cidade"/>
</session-factory>
O modulo HibernateUtil:
package br.com.ribeiro.drogaria.util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static SessionFactory fabricaDeSessoes = criarfabricaDeSessoes();
public static SessionFactory getfabricaDeSessoes() {
return fabricaDeSessoes;
}
private static SessionFactory criarfabricaDeSessoes() {
try {
Configuration configuracao = new Configuration().configure();
ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build();
SessionFactory fabrica = configuracao.buildSessionFactory(registro);
return fabrica;
} catch (Throwable ex) {
System.err.println("A fábrica de sessões não pode ser criada." + ex);
throw new ExceptionInInitializerError(ex);
}
}
}
O modulo HibernateUtilTest:
package br.com.ribeiro.drogaria.util;
import org.hibernate.Session;
import org.junit.Test;
public class HibernateUtilTest {
@Test
public void conectar(){
Session sessao = HibernateUtil.getfabricaDeSessoes().openSession();
sessao.close();
HibernateUtil.getfabricaDeSessoes().close();
}
}
O único problema é que ele não cria as tabelas no banco de dados, estou usando o MySqlWorkbench e o Xamp.
Alguém pode me dar uma ajuda conto a este problema?
Samuel Ribeiro
Curtidas 0
Respostas
Samuel Ribeiro
15/02/2018
Boa tarde
Corrigindo a uma tag, desconsidere a tag "NoSql", considerar a tag "MySql".
Obrigado.
Corrigindo a uma tag, desconsidere a tag "NoSql", considerar a tag "MySql".
Obrigado.
GOSTEI 0
Samuel Ribeiro
15/02/2018
Bom dia
Sera que alguém pode me indicar uma solução para este problema, ja rodei a internet a procura e todas as respostas não adiantaram, até postei este mesmo tópico em outro fórum mas ainda não achamos uma solução.
Desde ja Agradeço
Sera que alguém pode me indicar uma solução para este problema, ja rodei a internet a procura e todas as respostas não adiantaram, até postei este mesmo tópico em outro fórum mas ainda não achamos uma solução.
Desde ja Agradeço
GOSTEI 0
Igor Borba.
15/02/2018
Samuel,
Boa tarde. Tudo bem? Segundo a documentação, para o parâmetro informado abaixo:
<property name="hbm2ddl.auto">create</property>
O correto não seria?
<property name="hibernate.hbm2ddl.auto">create</property>
Segue referência na documentação do hibernate:
https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl
Boa tarde. Tudo bem? Segundo a documentação, para o parâmetro informado abaixo:
<property name="hbm2ddl.auto">create</property>
O correto não seria?
<property name="hibernate.hbm2ddl.auto">create</property>
Segue referência na documentação do hibernate:
https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#configurations-hbmddl
GOSTEI 0
Samuel Ribeiro
15/02/2018
Bom dia Igor.borba
Ja tentei com esta configuração: <property name="hibernate.hbm2ddl.auto">create</property>
E não funcionou também, ja li esta documentação, não entendo o porque o hibernate esta pulando esta etapa na hora da depuração.
Meu muito obrigado pelo retorno
Um abraço
Ja tentei com esta configuração: <property name="hibernate.hbm2ddl.auto">create</property>
E não funcionou também, ja li esta documentação, não entendo o porque o hibernate esta pulando esta etapa na hora da depuração.
Meu muito obrigado pelo retorno
Um abraço
GOSTEI 0