@Jeferson_Carlos escreveu:
Boa noite pessoal
Estou tentando criar a tabela Estado no Hibernate, mas não estou conseguindo.
Poderiam me ajudar?
Segue configuracoes e classe.Hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <!-- Configuracao do Hibernate --> <session-factory> <!-- Configuracoes de conexão com o Banco de Dados --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/drogaria</property> <property name="connection.username">root</property> <property name="connection.password">yusuke</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect(idioma do banco) --> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- Enable Hibernate's automatic session context management (gerencimaneto do contexto das sessoes) --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache ( Cache de segundo nivel) --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Echo all executed SQL to stdout ( mostra as sqls geradas) --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup ( criar as tabelas do banco ) --> <property name="hbm2ddl.auto">create</property> <!-- Mapeamento das Entidades --> <mapping class="br.com.jeff.drogaria.domain.Estado"/> </session-factory>
HibernateUtil
package br.com.jeff.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 { // cria um objeto do tipo sessionfactory private static SessionFactory fabricaDeSessao = criarFabricaDeSessao(); public static SessionFactory getFabricaDeSessao() { return fabricaDeSessao; } public static void setFabricaDeSessao(SessionFactory fabricaDeSessao) { HibernateUtil.fabricaDeSessao = fabricaDeSessao; } private static SessionFactory criarFabricaDeSessao(){ try{ //agora ele vai buscar os itens de configuracao do hibernate.cfg 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("Criação da Fabrica de Sessões falhou." + ex); throw new ExceptionInInitializerError(ex); } } }
HibernateUtilTeste
package br.com.jeff.drogaria.util; import org.hibernate.Session; import org.junit.Test; public class HibernateUtilTest { //ESSA CLASSE CHAMA A FABRICA DE SESSAO @Test public void conectar(){ Session sessao = HibernateUtil.getFabricaDeSessao().openSession(); sessao.close(); HibernateUtil.getFabricaDeSessao().close(); } }
GenericDomain
package br.com.jeff.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 // essa anotacao significa que essa classe nao vai ser uma tabela. public class GenericDomain implements Serializable { @Id // essa anotacao diz pro codigo que esse campo é uma chave primaria @GeneratedValue(strategy = GenerationType.AUTO) private Long codigo; public Long getCodigo() { return codigo; } //ESSA E UMA CLASSE DE APOIO PARA GERAR CHAVE PRIMARIAS DE OUTRAS TABELAS }
Classe Estado
package br.com.jeff.drogaria.domain; import javax.persistence.Entity; import javax.persistence.Table; //precisamos informar que essa classe é uma entidade do Hibernate, ou seja, ele é uma tabela, usaremos o annotation entity @SuppressWarnings("serial") @Entity @Table public class Estado extends GenericDomain{ private String sigla; private String nome; public String getSigla() { return sigla; } public void setSigla(String sigla) { this.sigla = sigla; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } }
Ele roda normalmente, porém, nenhuma tabela é criada.
Poderiam me ajudar por favor?
Mensagens: 6
Participantes: 4