Hibernate não cria tabelas no banco de dados

6 respostas
java
S

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 <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

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 {

<a class="mention" href="/u/test">@Test</a>

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?

6 Respostas

S

Bom dia
Alguém tem alguma sugestão??

J

Não consegue você mesmo criar as tabelas no banco?

S

Bom dia javaflex
Obrigado pelo retorno
Claro consigo sim, tanto é que ja tenho um banco criado, mas queria fazer conforme o curso ensina, por isso criei o tópico.

S

Boa tarde javaflex

Você acha que tem como corrigir este problema?

J

Consultando por exemplo a documentação, o nome da propriedade é hibernate.hbm2ddl.auto e não hbm2ddl.auto. Veja se isso faz diferença.

https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch03.html

Fora isso não sei o que pode ser, nunca precisei disso. Mas vai uma dica, nunca se prenda a um único conteúdo, pesquise outros tutoriais.

S

Bom dia javafles
Segui a fio o link que você me enviou, fiz até a alteração de correção que você sitou, mas não mudou nada, continua não gerando as tabelas, mas espero que alguém me mostre uma solução, porque estou seguindo um curso online, e não sei se com o banco de dados que criei vai dar certo.
Muito obrigado por sua atenção.

Criado 14 de fevereiro de 2018
Ultima resposta 16 de fev. de 2018
Respostas 6
Participantes 2