Olá pessoal.
Estou estudando Java + Hibernate , e venho encontrando algumas dificuldades para criar tabelas em um banco mySQL usando o próprio Hibernate.
Pelo o que eu entendi , podemos criar uma Classe qualquer como Entidades Persistentes [color=red]( @entity )[/color] , e o Hibernate pode "interpretar" esta classe e automaticamente criar uma tabela referente em meu banco de dados.
No caso eu ja fiz uma classe chamada Produtos, deixei ela como entidade e defini seu respectivo id e etc.
Minha dúvida é: Tendo em vista que minha classe está pronta, onde eu mecho para que o hibernate carregue esta classe e automaticamente crie a tabela em meu banco de dados ? Vi que é em um arquivo chamado hibernate.cfg.xml , mas não consigo sucesso,rsrs.
Quando eu tento executar a classe GeraTabelas ele não cria minha tabela.
Podem fazer uma checagem para mim ?
Abaixo deixo listado meus sources para uma melhor compreensão do meu problema.
Hibernate.cfg.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/lojavirtual</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping class="loja.Produtos"/>
</session-factory>
</hibernate-configuration>
package loja;
import java.io.Serializable;
import javax.persistence.*;
@Entity
public class Produtos implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(name = "descricao", nullable = true, length = 50)
private String descricao;
private Double preco;
private String nome;
public Produtos() {
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
}
package Banco;
import loja.Produtos;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class GeraTabelas {
public static void main(String[] args) {
// Cria uma configuração para a classe Produto
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Produtos.class);
new SchemaExport(cfg).create(true, true);
cfg.configure();
}
}
Eu não criei aqueles arquivos hbm.xml , é obrigatório ?
Muito obrigado pelo suporte amigos.
Abraços