Hibernate não cria tabelas no banco de dados
15/02/2018
0
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
Posts
15/02/2018
Samuel Ribeiro
Corrigindo a uma tag, desconsidere a tag "NoSql", considerar a tag "MySql".
Obrigado.
16/02/2018
Samuel Ribeiro
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
19/02/2018
Igor Borba.
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
20/02/2018
Samuel Ribeiro
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
Clique aqui para fazer login e interagir na Comunidade :)